Here's a reduced testcase (reduced to the point of generating lots of warnings, I'm compiling with -O2 -w, on x86_64):
struct __jmp_buf_tag { }; typedef struct __jmp_buf_tag sigjmp_buf[1]; extern struct cmd_list_element *showlist; struct internalvar { struct internalvar *next; }; static struct internalvar *internalvars; struct internalvar * create_internalvar (const char *name) { struct internalvar *var = ((struct internalvar *) xmalloc (sizeof (struct internalvar))); internalvars = var; } void show_convenience (char *ignore, int from_tty) { struct gdbarch *gdbarch = get_current_arch (); int varseen = 0; for (struct internalvar *var = internalvars; var; var = var->next) { if (!varseen) varseen = 1; sigjmp_buf *buf = exceptions_state_mc_init (); __sigsetjmp (); while (exceptions_state_mc_action_iter ()) while (exceptions_state_mc_action_iter_1 ()) ; } if (!varseen) printf_unfiltered (); } On 26 November 2015 at 11:33, Alan Lawrence <alan.lawre...@arm.com> 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 > > --Alan