https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61391
Bug ID: 61391 Summary: [4.10 Regression] ICE in execute_one_pass at -O3 and above Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com At least 4.10.0-alpha20140525 and newer ICEs when compiling the following code at -O3 or -Ofast: short int u; int h; int i; void p(void) { int c[2] = { 0 }; for (h = 0; h < 2; ++h) { static int *l = &h; int t; int n; for (t = 0; t < 7; ++t) c[0] = (i & -(short int)(c[h+1] || (u = -(n != *l))) || c[h+1]); } } f55ba4cd.c: In function 'p': f55ba4cd.c:6:1: internal compiler error: Segmentation fault p(void) ^ Unfortunately I cannot provide a meaningful stack trace because stack seems to be corrupted. The last active frame seems to be of execute_one_pass(opt_pass*), and "gdb disassemble" gives the following on x86_64: <snipped> 0x00000000008047b7 <+677>: xor %eax,%eax 0x00000000008047b9 <+679>: jmpq 0x804630 <_Z16execute_one_passP8opt_pass+286> 0x00000000008047be <+684>: mov 0x0(%rbp),%rax 0x00000000008047c2 <+688>: mov 0xb12b4f(%rip),%rsi # 0x1317318 <cfun> 0x00000000008047c9 <+695>: mov %rbp,%rdi 0x00000000008047cc <+698>: callq *0x20(%rax) => 0x00000000008047cf <+701>: mov %eax,%r13d 0x00000000008047d2 <+704>: xor %esi,%esi 0x00000000008047d4 <+706>: mov $0x8023f0,%edi 0x00000000008047d9 <+711>: callq 0x802af2 0x00000000008047de <+716>: jmp 0x804795 <_Z16execute_one_passP8opt_pass+643> 0x00000000008047e0 <+718>: test %rsi,%rsi 0x00000000008047e3 <+721>: jne 0x8047f3 <_Z16execute_one_passP8opt_pass+737> 0x00000000008047e5 <+723>: cmpq $0x0,0xbc1bbb(%rip) # 0x13c63a8 <current_function_decl> </snipped>