aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-11-10 22:57:48 +0000
committerJeff Law <law@gcc.gnu.org>1999-11-10 15:57:48 -0700
commitbce8fed77678f2dc2a6ec0e669f07e5749d6d588 (patch)
tree0ccb5ba3f60d51f76c013e7a59bf5f0366aae135 /gcc
parent05fd666b63ac147fa053959d581ead5b003fe60c (diff)
downloadgcc-bce8fed77678f2dc2a6ec0e669f07e5749d6d588.zip
gcc-bce8fed77678f2dc2a6ec0e669f07e5749d6d588.tar.gz
gcc-bce8fed77678f2dc2a6ec0e669f07e5749d6d588.tar.bz2
dwarf2out.c (add_AT_location_description): Allow (mem (plus (pseudo) (...)) too.
* dwarf2out.c (add_AT_location_description): Allow (mem (plus (pseudo) (...)) too. From-SVN: r30480
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a9a57ba..5e9480e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com)
+
+ * dwarf2out.c (add_AT_location_description): Allow
+ (mem (plus (pseudo) (...)) too.
+
Wed Nov 10 10:52:42 1999 Tom Tromey <tromey@cygnus.com>
* gcc.c (do_spec_1): Support text between `%u' and `%O'.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 232ec81..c4ee8ca 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -6732,6 +6732,13 @@ add_AT_location_description (die, attr_kind, rtl)
if (is_pseudo_reg (rtl)
|| (GET_CODE (rtl) == MEM
&& is_pseudo_reg (XEXP (rtl, 0)))
+ /* This can happen for a PARM_DECL with a DECL_INCOMING_RTL which
+ references the internal argument pointer (a pseudo) in a function
+ where all references to the internal argument pointer were
+ eliminated via the optimizers. */
+ || (GET_CODE (rtl) == MEM
+ && GET_CODE (XEXP (rtl, 0)) == PLUS
+ && is_pseudo_reg (XEXP (XEXP (rtl, 0), 0)))
|| (GET_CODE (rtl) == CONCAT
&& is_pseudo_reg (XEXP (rtl, 0))
&& is_pseudo_reg (XEXP (rtl, 1))))