From 6eb46b619fbdf1d1f1e7e5f68524c0b330d62aab Mon Sep 17 00:00:00 2001 From: epetrich Date: Tue, 15 Jun 2004 04:53:51 +0000 Subject: [PATCH] * src/SDCCcse.c (cseBBlock): fixed bug #966963 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3360 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 4 ++++ src/SDCCcse.c | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4f3c0d5f..b47e2f97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-06-08 Erik Petrich + + * src/SDCCcse.c (cseBBlock): fixed bug #966963 + 2004-06-12 Vangelis Rokas * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for diff --git a/src/SDCCcse.c b/src/SDCCcse.c index c5750920..6094b044 100644 --- a/src/SDCCcse.c +++ b/src/SDCCcse.c @@ -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)); + } + } } } -- 2.30.2