http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57147
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2013-05-03 Component|tree-optimization |middle-end AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Target Milestone|--- |4.9.0 Ever Confirmed|0 |1 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-05-03 09:08:31 UTC --- Confirmed also on x86_64: TestSyscall: .LFB38: .cfi_startproc pushl %edi .cfi_def_cfa_offset 8 .cfi_offset 7, -8 movl $g_expected_regs, %edi pushl %esi .cfi_def_cfa_offset 12 .cfi_offset 6, -12 subl $65636, %esp .cfi_def_cfa_offset 65648 leal 28(%esp), %esi movl %esi, (%esp) movl $0, 4(%esp) call RegsFillTestValues leal 65632(%esp), %eax movl %esi, (%esp) movl %eax, 80(%esp) movl $ContinueAfterSyscall, 88(%esp) call RegsApplySandboxConstraints movl $17, %ecx rep movsl movl $g_expected_regs, (%esp) call RegsUnsetNonCalleeSavedRegisters movl g_expected_regs+60, %eax movl %eax, g_expected_regs+4 movl g_expected_regs+52, %eax movl %eax, g_expected_regs .cfi_endproc .LFE38: .size TestSyscall, .-TestSyscall .p2align 4,,15 It's because we have <bb 4>: g_expected_regs = call_regs; RegsUnsetNonCalleeSavedRegisters (&g_expected_regs); <bb 5>: _22 = g_expected_regs.prog_ctr; g_expected_regs.r1 = _22; _23 = g_expected_regs.stack_ptr; g_expected_regs.r0 = _23; __builtin_unreachable (); which appears first in t.i.034t.local-pure-const1. Weird.