diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-01-04 18:43:51 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-01-04 18:43:51 +0000 |
commit | 8cb85bca508984a6e73d0a12d162bfa4399bc59f (patch) | |
tree | 681843d9d224b144d7be9428923a12205d825512 /gcc/sdbout.c | |
parent | 2d4694be46a2ea0b3159bdea8af5ccc5b63666bd (diff) | |
download | ppe42-gcc-8cb85bca508984a6e73d0a12d162bfa4399bc59f.tar.gz ppe42-gcc-8cb85bca508984a6e73d0a12d162bfa4399bc59f.zip |
(sdbout_symbol): Handle variables at zero offset from frame pointer.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6358 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sdbout.c')
-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 ac7c0f14119..04578e5298e 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); |