From 0fd79db80e25a76001e782836640e382991ff34a Mon Sep 17 00:00:00 2001 From: johanknol Date: Mon, 14 Jan 2002 10:18:53 +0000 Subject: [PATCH] fixed bug #503216 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1800 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/avr/gen.c | 1 + src/ds390/gen.c | 2 ++ src/mcs51/gen.c | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/avr/gen.c b/src/avr/gen.c index 638182ab..c44c40a2 100644 --- a/src/avr/gen.c +++ b/src/avr/gen.c @@ -290,6 +290,7 @@ hasInc (operand *op, iCode *ic) int isize ; if (IS_BITVAR(retype)||!IS_PTR(type)) return NULL; + if (IS_AGGREGATE(type->next)) return NULL; isize = getSize(type->next); while (lic) { /* if operand of the form op = op + */ diff --git a/src/ds390/gen.c b/src/ds390/gen.c index 875b5913..9ade1a7f 100644 --- a/src/ds390/gen.c +++ b/src/ds390/gen.c @@ -5594,7 +5594,9 @@ hasInc (operand *op, iCode *ic, int osize) if (!IS_SYMOP(op)) return NULL; if (IS_BITVAR(retype)||!IS_PTR(type)) return NULL; + if (IS_AGGREGATE(type->next)) return NULL; if (osize != (isize = getSize(type->next))) return NULL; + while (lic) { /* if operand of the form op = op + */ if (lic->op == '+' && isOperandEqual(IC_LEFT(lic),op) && diff --git a/src/mcs51/gen.c b/src/mcs51/gen.c index 63106da7..4d1f4394 100644 --- a/src/mcs51/gen.c +++ b/src/mcs51/gen.c @@ -4357,7 +4357,9 @@ hasInc (operand *op, iCode *ic,int osize) if (!IS_SYMOP(op)) return NULL; if (IS_BITVAR(retype)||!IS_PTR(type)) return NULL; + if (IS_AGGREGATE(type->next)) return NULL; if (osize != (isize = getSize(type->next))) return NULL; + while (lic) { /* if operand of the form op = op + */ if (lic->op == '+' && isOperandEqual(IC_LEFT(lic),op) && -- 2.30.2