------- Additional Comments From amodra at bigpond dot net dot au 2004-11-30 03:25 ------- Obviously, the loop expects REG_SAVE_NOTEs in pairs, which it isn't getting, hence the segfault.
This is because the function that adds these notes, sched_analyze, is being called on basic blocks, and the NOTE_INSN_LOOP_BEG/END pair isn't in the same basic block. Smell like bit rot. ;; End of basic block 2, registers live: 1 [1] 31 [31] 67 [ap] 123 124 (note:HI 48 22 23 NOTE_INSN_LOOP_BEG) ;; Start of basic block 3, registers live: 1 [1] 31 [31] 67 [ap] 123 124 (code_label:HI 23 48 24 3 4 "" [1 uses]) [snip] ;; Start of basic block 4, registers live: 1 [1] 31 [31] 67 [ap] 122 124 [snip] (note:HI 49 34 63 4 NOTE_INSN_LOOP_END) [snip] -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18718