From 9248424afe9fba758b93efc95507178dc2d15442 Mon Sep 17 00:00:00 2001 From: johanknol Date: Wed, 19 Dec 2001 13:10:51 +0000 Subject: [PATCH] fixed bug #494721 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1715 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/avr/ralloc.c | 3 ++- src/mcs51/ralloc.c | 3 ++- src/pic/ralloc.c | 3 ++- src/z80/ralloc.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) 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; -- 2.30.2