On Thu, 26 Nov 2015, Alan Lawrence wrote: > This caused an ICE compiling value.c from gdb on > aarch64-none-linux-gnu; the testcase, after preprocessing on aarch64, > ICEs on both aarch64 and x86_64, but is about 1MB - I'm working on > reducing that down to something small enough to post... > > $ ./gcc/xgcc -B ./gcc -O2 -g value.c > ../../binutils-gdb/gdb/value.c: In function ‘show_convenience’: > ../../binutils-gdb/gdb/value.c:2615:1: error: loop 3’s latch is missing > ../../binutils-gdb/gdb/value.c:2615:1: internal compiler error: in > verify_loop_structure, at cfgloop.c:1669 > 0x71e653 verify_loop_structure() > /work/alalaw01/src2/gcc/gcc/cfgloop.c:1669 > 0x97c6ae checking_verify_loop_structure > /work/alalaw01/src2/gcc/gcc/cfgloop.h:325 > 0x97c6ae loop_optimizer_init(unsigned int) > /work/alalaw01/src2/gcc/gcc/loop-init.c:106 > 0x97c78a rtl_loop_init > /work/alalaw01/src2/gcc/gcc/loop-init.c:398 > 0x97c78a execute > /work/alalaw01/src2/gcc/gcc/loop-init.c:425 See also PR68549 for why I think this happens "by design". Thus I think we need to revert the checking when LOOPS_MAY_HAVE_MULTIPLE_LATCHES for now. Richard.