X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCicode.c;h=bdee802c7e4a71e4a40e00d67a6e16bb914126ee;hb=9808229661396adafad260b2422767536a6828ac;hp=d44657902f3b5ee2d049b30c55a0dab9d9889a32;hpb=09f744b9eccbdf896febcac4d46e45129e639f70;p=fw%2Fsdcc diff --git a/src/SDCCicode.c b/src/SDCCicode.c index d4465790..bdee802c 100644 --- a/src/SDCCicode.c +++ b/src/SDCCicode.c @@ -564,8 +564,8 @@ iCode *copyiCode (iCode *ic) switch (ic->op) { case IFX: IC_COND(nic) = operandFromOperand(IC_COND(ic)); - IC_TRUE(nic) = operandFromOperand(IC_TRUE(ic)); - IC_FALSE(nic)= operandFromOperand(IC_FALSE(ic)); + IC_TRUE(nic) = IC_TRUE(ic); + IC_FALSE(nic)= IC_FALSE(ic); break; case JUMPTABLE: @@ -2380,12 +2380,12 @@ static void geniCodeParms ( ast *parms , int *stack, link *fetype) geniCodeAssign(top,pval,1); } else { - + link *p = operandType(pval); /* push */ ic = newiCode(IPUSH,pval,NULL); ic->parmPush = 1; /* update the stack adjustment */ - *stack += getSize(operandType(pval)); + *stack += getSize(IS_AGGREGATE(p)? aggrToPtr(p,FALSE):p); ADDTOCHAIN(ic); } }