diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1994-01-04 10:43:51 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1994-01-04 10:43:51 -0800 |
commit | 6d55e0ab0af7c4b69977839d9bf43290ef12bcab (patch) | |
tree | 681843d9d224b144d7be9428923a12205d825512 /gcc | |
parent | 6a22e3a73199601882483cccb71ddca83b512df1 (diff) | |
download | gcc-6d55e0ab0af7c4b69977839d9bf43290ef12bcab.zip gcc-6d55e0ab0af7c4b69977839d9bf43290ef12bcab.tar.gz gcc-6d55e0ab0af7c4b69977839d9bf43290ef12bcab.tar.bz2 |
(sdbout_symbol): Handle variables at zero offset from frame pointer.
From-SVN: r6358
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/sdbout.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gcc/sdbout.c b/gcc/sdbout.c index ac7c0f1..04578e5 100644 --- a/gcc/sdbout.c +++ b/gcc/sdbout.c @@ -842,12 +842,17 @@ sdbout_symbol (decl, local) type = build_pointer_type (TREE_TYPE (decl)); } else if (GET_CODE (value) == MEM - && GET_CODE (XEXP (value, 0)) == PLUS - && GET_CODE (XEXP (XEXP (value, 0), 0)) == REG - && GET_CODE (XEXP (XEXP (value, 0), 1)) == CONST_INT) + && ((GET_CODE (XEXP (value, 0)) == PLUS + && GET_CODE (XEXP (XEXP (value, 0), 0)) == REG + && GET_CODE (XEXP (XEXP (value, 0), 1)) == CONST_INT) + /* This is for variables which are at offset zero from + the frame pointer. This happens on the Alpha. + Non-frame pointer registers are excluded above. */ + || (GET_CODE (XEXP (value, 0)) == REG))) { - /* DECL_RTL looks like (MEM (PLUS (REG...) (CONST_INT...))). - We want the value of that CONST_INT. */ + /* DECL_RTL looks like (MEM (PLUS (REG...) (CONST_INT...))) + or (MEM (REG...)). We want the value of that CONST_INT + or zero. */ PUT_SDB_DEF (name); PUT_SDB_INT_VAL (DEBUGGER_AUTO_OFFSET (XEXP (value, 0))); PUT_SDB_SCL (C_AUTO); |