* src/SDCCcse.c (cseBBlock): fixed bug #966963
authorepetrich <epetrich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 15 Jun 2004 04:53:51 +0000 (04:53 +0000)
committerepetrich <epetrich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 15 Jun 2004 04:53:51 +0000 (04:53 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3360 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCcse.c

index 4f3c0d5ff0ef0c126613334c778ed1bbf7f7aff0..b47e2f97ca1ecbc49c5ec37804e2dda4ebc66647 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCcse.c (cseBBlock): fixed bug #966963
+
 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
 
        * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
index c57509201370e3d868ad059ec95cfe12ba7293a5..6094b0444d6a1efd22dfe76234e4dac7968af1e1 100644 (file)
@@ -1931,9 +1931,15 @@ cseBBlock (eBBlock * ebb, int computeOnly,
            {
              pdop = NULL;
              applyToSetFTrue (cseSet, findCheaperOp, IC_RESULT (ic), &pdop, 0);
-             if (pdop && !computeOnly &&
-                 IS_ITEMP (pdop) && IS_PTR(operandType(pdop)))
-               ReplaceOpWithCheaperOp (&IC_RESULT(ic), pdop);
+             if (pdop && !computeOnly && IS_ITEMP (pdop))
+               {
+                 ReplaceOpWithCheaperOp (&IC_RESULT(ic), pdop);
+                 if (!IS_PTR (operandType (IC_RESULT (ic))))
+                   {
+                     setOperandType (IC_RESULT (ic),
+                                     aggrToPtr (operandType (IC_RESULT (ic)), FALSE));
+                   }
+               }
            }
        }