aboutsummaryrefslogtreecommitdiff
path: root/gcc/dbxout.c
diff options
context:
space:
mode:
authorMichael Meissner <meissner@cygnus.com>1997-11-14 01:39:43 +0000
committerJeff Law <law@gcc.gnu.org>1997-11-13 18:39:43 -0700
commit9571f69bfd3e6524b556fbb608f8ea23f4492f6f (patch)
tree3e94df4849f69f73de4ce8cf8a3dbbfeb6835e73 /gcc/dbxout.c
parente7cbb6b66e279adaa5bba51256264659a474d37f (diff)
downloadgcc-9571f69bfd3e6524b556fbb608f8ea23f4492f6f.zip
gcc-9571f69bfd3e6524b556fbb608f8ea23f4492f6f.tar.gz
gcc-9571f69bfd3e6524b556fbb608f8ea23f4492f6f.tar.bz2
dbxout.c (dbxout_symbol_location): Don't assume that variables whose address is the stack or argument pointers are...
* dbxout.c (dbxout_symbol_location): Don't assume that variables whose address is the stack or argument pointers are indirect pointers. From-SVN: r16475
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r--gcc/dbxout.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index 9255768..00bbcc8 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -1980,7 +1980,12 @@ dbxout_symbol_location (decl, type, suffix, home)
else if (GET_CODE (home) == MEM
&& (GET_CODE (XEXP (home, 0)) == MEM
|| (GET_CODE (XEXP (home, 0)) == REG
- && REGNO (XEXP (home, 0)) != HARD_FRAME_POINTER_REGNUM)))
+ && REGNO (XEXP (home, 0)) != HARD_FRAME_POINTER_REGNUM
+ && REGNO (XEXP (home, 0)) != STACK_POINTER_REGNUM
+#if ARG_POINTER_REGNUM != HARD_FRAME_POINTER_REGNUM
+ && REGNO (XEXP (home, 0)) != ARG_POINTER_REGNUM
+#endif
+ )))
/* If the value is indirect by memory or by a register
that isn't the frame pointer
then it means the object is variable-sized and address through