http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60651
--- Comment #2 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> --- Created attachment 32526 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32526&action=edit preprocessed libjava file With the latest proposed patch, we get an assertion failure building libjava during the i686-pc-linux-gnu bootstrap; this is the command line: ./cc1plus -fpreprocessed interpret.ii -quiet -dumpbase interpret.cc -mtune=generic -march=pentiumpro -auxbase-strip .libs/interpret.o -g -O2 -Wswitch-enum -Wextra -Wall -version -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -ffloat-store -fomit-frame-pointer -fwrapv -fPIC -o interpret.s The block in question looks like this: (code_label/s 9087 9590 9090 17 990 "" [1 uses]) (note 9090 9087 9088 17 [bb 17] NOTE_INSN_BASIC_BLOCK) where the BB_HEAD is the CODE_LABEL, and the BB_END is the NOTE_INSN_BASIC_BLOCK. The caller of new_seginfo is the abnormal-edge code that I've patched to handle non-empty blocks differently; this block is mistaken for a non-empty block. Now, interestingly, the pre-existing code already handles this incorrectly, by inserting instructions between the CODE_LABEL an the NOTE_INSN_BASIC_BLOCK.