From 47775d1abb9177d7b4d860843bba03328b40f815 Mon Sep 17 00:00:00 2001 From: spth Date: Mon, 17 Mar 2008 13:52:00 +0000 Subject: [PATCH] Fixed #1292721 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5107 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/z80/ralloc.c | 4 +-- support/regression/tests/bug-1292721.c | 38 ++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 support/regression/tests/bug-1292721.c diff --git a/src/z80/ralloc.c b/src/z80/ralloc.c index fc3cfd1d..b9cba56c 100644 --- a/src/z80/ralloc.c +++ b/src/z80/ralloc.c @@ -2877,7 +2877,7 @@ packRegsForAccUse2 (iCode * ic) D (D_ACCUSE2_VERBOSE, (" ! Preserves A, so continue scanning\n")); scan = next; } - else if (scan->next == NULL && bitVectnBitsOn (uses) == 1 && next != NULL) + /*else if (scan->next == NULL && bitVectnBitsOn (uses) == 1 && next != NULL) { if (next->prev == NULL) { @@ -2894,7 +2894,7 @@ packRegsForAccUse2 (iCode * ic) D (D_ACCUSE2, (" + Dropping as last in list and next doesn't start a block\n")); return; } - } + } /*This caused bug #1292721 */ else if (scan->next == NULL) { D (D_ACCUSE2, (" + Dropping as hit the end of the list\n")); diff --git a/support/regression/tests/bug-1292721.c b/support/regression/tests/bug-1292721.c new file mode 100644 index 00000000..5623c525 --- /dev/null +++ b/support/regression/tests/bug-1292721.c @@ -0,0 +1,38 @@ +/* + bugs 1292721. +*/ + +#include + +char bar(void) +{ + static char ret = 0; + if(!ret) { + ret = 1; + return(0); + } + return(1); +} + +void +testBug156270(void) +{ + char aa, bb; + + aa = bar(); + + for (;;) { + + bb = bar(); + + if (!bb) + break; + + if (aa == 0) + return; + + ASSERT(0); + } + ASSERT(0); +} + -- 2.30.2