diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 28 |
2 files changed, 19 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a86271d..c7e966c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-04-03 Alan Modra <alan@linuxcare.com.au> + + * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and + LO_SUM cases to where they belong. + 2001-04-02 Richard Henderson <rth@redhat.com> * except.h (lang_eh_type_covers): Mark extern. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 6f8d335..2e71518 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -1404,26 +1404,26 @@ dwarf2out_frame_debug_expr (expr, label) cfa_temp.offset |= INTVAL (XEXP (src, 1)); break; + /* Skip over HIGH, assuming it will be followed by a LO_SUM, + which will fill in all of the bits. */ + /* Rule 8 */ + case HIGH: + break; + + /* Rule 9 */ + case LO_SUM: + if (GET_CODE (XEXP (src, 1)) != CONST_INT) + abort (); + cfa_temp.reg = REGNO (dest); + cfa_temp.offset = INTVAL (XEXP (src, 1)); + break; + default: abort (); } def_cfa_1 (label, &cfa); break; - /* Skip over HIGH, assuming it will be followed by a LO_SUM, which - will fill in all of the bits. */ - /* Rule 8 */ - case HIGH: - break; - - /* Rule 9 */ - case LO_SUM: - if (GET_CODE (XEXP (src, 1)) != CONST_INT) - abort (); - cfa_temp.reg = REGNO (dest); - cfa_temp.offset = INTVAL (XEXP (src, 1)); - break; - case MEM: if (GET_CODE (src) != REG) abort (); |