diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8cad980875b..c20349431f1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-06-14 Andreas Schwab + + * config/m68k/m68k.c (m68k_delegitimize_address): Don't do + anything if the argument is not a MEM. + 2010-06-14 Alexandre Oliva PR debug/43650 diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index de6442aa6be..76be38d35a7 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -4624,16 +4624,17 @@ m68k_output_dwarf_dtprel (FILE *file, int size, rtx x) and turn them back into a direct symbol reference. */ static rtx -m68k_delegitimize_address (rtx x) +m68k_delegitimize_address (rtx orig_x) { - rtx orig_x = delegitimize_mem_from_attrs (x); - rtx y; + rtx x, y; rtx addend = NULL_RTX; rtx result; - x = orig_x; - if (MEM_P (x)) - x = XEXP (x, 0); + orig_x = delegitimize_mem_from_attrs (orig_x); + if (! MEM_P (orig_x)) + return orig_x; + + x = XEXP (orig_x, 0); if (GET_CODE (x) == PLUS && GET_CODE (XEXP (x, 1)) == CONST