From: johanknol Date: Wed, 19 Dec 2001 13:10:51 +0000 (+0000) Subject: fixed bug #494721 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=9248424afe9fba758b93efc95507178dc2d15442;p=fw%2Fsdcc fixed bug #494721 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1715 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/src/avr/ralloc.c b/src/avr/ralloc.c index 6ff00088..6efc4aed 100644 --- a/src/avr/ralloc.c +++ b/src/avr/ralloc.c @@ -1892,7 +1892,8 @@ packRegsForOneuse (iCode * ic, operand * op, eBBlock * ebp) /* now check if it is the return from a function call */ if (dic->op == CALL || dic->op == PCALL) { - if (ic->op != SEND && ic->op != RETURN) { + if (ic->op != SEND && ic->op != RETURN && + !POINTER_SET(ic) && !POINTER_GET(ic)) { OP_SYMBOL (op)->ruonly = 1; return dic; } diff --git a/src/mcs51/ralloc.c b/src/mcs51/ralloc.c index 21dd4bd4..1578ae1d 100644 --- a/src/mcs51/ralloc.c +++ b/src/mcs51/ralloc.c @@ -2095,7 +2095,8 @@ packRegsForOneuse (iCode * ic, operand * op, eBBlock * ebp) a function call */ if (dic->op == CALL || dic->op == PCALL) { - if (ic->op != SEND && ic->op != RETURN) + if (ic->op != SEND && ic->op != RETURN && + !POINTER_SET(ic) && !POINTER_GET(ic)) { OP_SYMBOL (op)->ruonly = 1; return dic; diff --git a/src/pic/ralloc.c b/src/pic/ralloc.c index 08b72f92..125bd812 100644 --- a/src/pic/ralloc.c +++ b/src/pic/ralloc.c @@ -2477,7 +2477,8 @@ packRegsForOneuse (iCode * ic, operand * op, eBBlock * ebp) a function call */ if (dic->op == CALL || dic->op == PCALL) { - if (ic->op != SEND && ic->op != RETURN) + if (ic->op != SEND && ic->op != RETURN && + !POINTER_SET(ic) && !POINTER_GET(ic)) { OP_SYMBOL (op)->ruonly = 1; return dic; diff --git a/src/z80/ralloc.c b/src/z80/ralloc.c index 9d58ded2..b23b4b22 100644 --- a/src/z80/ralloc.c +++ b/src/z80/ralloc.c @@ -1899,7 +1899,8 @@ packRegsForOneuse (iCode * ic, operand * op, eBBlock * ebp) /* now check if it is the return from a function call */ if (dic->op == CALL || dic->op == PCALL) { - if (ic->op != SEND && ic->op != RETURN) + if (ic->op != SEND && ic->op != RETURN && + !POINTER_SET(ic) && !POINTER_GET(ic)) { OP_SYMBOL (op)->ruonly = 1; return dic;