dbxout.c (dbxout_symbol_location): Don't assume that variables whose address is the...
authorMichael Meissner <meissner@cygnus.com>
Fri, 14 Nov 1997 01:39:43 +0000 (01:39 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 14 Nov 1997 01:39:43 +0000 (18:39 -0700)
        * dbxout.c (dbxout_symbol_location): Don't assume that variables
        whose address is the stack or argument pointers are indirect
        pointers.

From-SVN: r16475

gcc/ChangeLog
gcc/dbxout.c

index e6543f88d3f4d0bbc8e4d31c47eadb2afe6da7b8..a7aa7bee21f6bc32ba97a2b6e957046404a73035 100644 (file)
@@ -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):
index 92557685b3117efeae3060e3490f86d76cff04b7..00bbcc840acd66bc791f086690b2b81a5af39214 100644 (file)
@@ -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