http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45849
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW CC| |jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2010-10-01 12:11:56 UTC --- The expressions seem to be equivalent, but not something rtx_equal_p recognizes as equivalent: (gdb) p debug_rtx (*note_slot) (var_location len (plus:DI (minus:DI (mult:DI (minus:DI (reg/v/f:DI 6 bp [orig:76 rp ] [76]) (reg/v/f:DI 42 r13 [orig:66 matchstart ] [66])) (reg/v:DI 43 r14 [orig:62 repllen ] [62])) (reg/v/f:DI 41 r12 [orig:61 text ] [61])) (reg/v/f:DI 42 r13 [orig:66 matchstart ] [66]))) $4 = void (gdb) p debug_rtx (note_vl) (var_location len (plus:DI (mult:DI (minus:DI (reg/v/f:DI 6 bp [orig:76 rp ] [76]) (reg/v/f:DI 42 r13 [orig:66 matchstart ] [66])) (reg/v:DI 43 r14 [orig:62 repllen ] [62])) (minus:DI (reg/v/f:DI 42 r13 [orig:66 matchstart ] [66]) (reg:DI 41 r12)))) $5 = void Will try to debug where this difference comes from.