+2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
+
2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
* device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* src/SDCCast.h (struct ast),
- * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577
+ * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
2004-10-20 Borut Razem <borut.razem AT siol.net>
/* top down if we find a nonParm tree then quit */
if (ptree->type == EX_OP && ptree->opval.op == PARAM && !ptree->reversed)
{
+ /* The various functions expect the parameter tree to be right heavy. */
+ /* Rotate the tree to be left heavy so that after reversal it is */
+ /* right heavy again. */
+ while ((ttree = ptree->right) && ttree->type == EX_OP &&
+ ttree->opval.op == PARAM)
+ {
+ ptree->right = ttree->right;
+ ttree->right = ttree->left;
+ ttree->left = ptree->left;
+ ptree->left = ttree;
+ }
+
+ /* Now reverse */
ttree = ptree->left;
ptree->left = ptree->right;
ptree->right = ttree;