From 6d55e0ab0af7c4b69977839d9bf43290ef12bcab Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 4 Jan 1994 10:43:51 -0800 Subject: (sdbout_symbol): Handle variables at zero offset from frame pointer. From-SVN: r6358 --- gcc/sdbout.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'gcc') 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); -- cgit v1.1