Although a one byte char array has size==1, it can't be accuse
[fw/sdcc] / src / ds390 / ralloc.c
index ca8e0ab3487d08e63fb43e126988692dd81a9220..2a17ebf22bf0470ca119e85d9f61997925b5eb82 100644 (file)
@@ -2157,6 +2157,11 @@ packRegsForAccUse (iCode * ic)
 {
   iCode *uic;
 
+  /* if this is an aggregate, e.g. a one byte char array */
+  if (IS_AGGREGATE(operandType(IC_RESULT(ic)))) {
+    return;
+  }
+
   /* if + or - then it has to be one byte result */
   if ((ic->op == '+' || ic->op == '-')
       && getSize (operandType (IC_RESULT (ic))) > 1)