diff options
author | Michael Meissner <meissner@cygnus.com> | 1997-11-14 01:39:43 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-11-13 18:39:43 -0700 |
commit | 9571f69bfd3e6524b556fbb608f8ea23f4492f6f (patch) | |
tree | 3e94df4849f69f73de4ce8cf8a3dbbfeb6835e73 | |
parent | e7cbb6b66e279adaa5bba51256264659a474d37f (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dbxout.c | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e6543f8..a7aa7be 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Thu Nov 13 18:41:02 1997 Michael Meissner <meissner@cygnus.com> + + * dbxout.c (dbxout_symbol_location): Don't assume that variables + whose address is the stack or argument pointers are indirect + pointers. + 1997-11-13 Paul Eggert <eggert@twinsun.com> * cccp.c, cpplib.c (compare_defs): 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 |