src/SDCCglue.c (printIvalArray): iterative calculation of array length
[fw/sdcc] / src / SDCCicode.c
index dd8dca5fb4a8f53bf6075bea9f3a63f4e7f3a597..e20c2d8227a9ef652b34cd6f636270387a76509d 100644 (file)
@@ -1080,7 +1080,7 @@ operandOperation (operand * left, operand * right,
       break;
     case RIGHT_OP: {
       double lval = operandLitValue(left), rval = operandLitValue(right);
-      double res;
+      double res=0;
       switch ((SPEC_USIGN(let) ? 2 : 0) + (SPEC_USIGN(ret) ? 1 : 0)) 
        {
        case 0: // left=unsigned right=unsigned
@@ -2798,7 +2798,8 @@ geniCodeSEParms (ast * parms,int lvl)
     geniCodeRValue (ast2iCode (parms,lvl+1), FALSE);
                
   parms->type = EX_OPERAND;
-  AST_ARGREG(parms) = SPEC_ARGREG(parms->etype);
+  AST_ARGREG(parms) = parms->etype ? SPEC_ARGREG(parms->etype) :
+               SPEC_ARGREG(parms->ftype);
 }
 
 /*-----------------------------------------------------------------*/