aboutsummaryrefslogtreecommitdiff
path: root/gcc/dbxout.c
diff options
context:
space:
mode:
authorCatherine Moore <clm@redhat.com>2001-01-05 20:15:24 +0000
committerCatherine Moore <clm@gcc.gnu.org>2001-01-05 15:15:24 -0500
commitebb0cdf335554673adc52f752ce7f9bc2dd2121e (patch)
tree3f6ca9f5a5d0f581d581fd420544905c1d3e06a6 /gcc/dbxout.c
parent3b4e6a16446eba9f3db3d2d31b2563f7c0bf8192 (diff)
downloadgcc-ebb0cdf335554673adc52f752ce7f9bc2dd2121e.zip
gcc-ebb0cdf335554673adc52f752ce7f9bc2dd2121e.tar.gz
gcc-ebb0cdf335554673adc52f752ce7f9bc2dd2121e.tar.bz2
(dbxout_parms): Handle invisible ref where decl is a REG
From-SVN: r38720
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r--gcc/dbxout.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index c3838df..2d4ea6d 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -2474,12 +2474,16 @@ dbxout_parms (parms)
{
/* Parm was passed via invisible reference, with the reference
living on the stack. DECL_RTL looks like
- (MEM (MEM (PLUS (REG ...) (CONST_INT ...)))). */
+ (MEM (MEM (PLUS (REG ...) (CONST_INT ...)))) or it
+ could look like (MEM (MEM (REG))). */
const char *decl_name = (DECL_NAME (parms)
? IDENTIFIER_POINTER (DECL_NAME (parms))
: "(anon)");
- current_sym_value
- = INTVAL (XEXP (XEXP (XEXP (DECL_RTL (parms), 0), 0), 1));
+ if (GET_CODE (XEXP (XEXP (DECL_RTL (parms), 0), 0)) == REG)
+ current_sym_value = 0;
+ else
+ current_sym_value
+ = INTVAL (XEXP (XEXP (XEXP (DECL_RTL (parms), 0), 0), 1));
current_sym_addr = 0;
FORCE_TEXT;