https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63738
Marc Glisse <glisse at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[5 Regression] ssa |[4.9/5 Regression] ssa |corruption when compiled |corruption when compiled |with -O3 |with -O3 --- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> --- Actually no, this isn't related to my clobber patch, I can reproduce with 4.9. // gcc bug.c -c -O3 -std=gnu99 typedef long __jmp_buf[8]; typedef struct { unsigned long int __val[16]; } __sigset_t; struct __jmp_buf_tag { __jmp_buf __jmpbuf; int __mask_was_saved; __sigset_t __saved_mask; }; typedef struct __jmp_buf_tag jmp_buf[1]; extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__)); struct longjmp_buffer { jmp_buf buf; }; void plouf(); extern long interprete() { long * sp; struct longjmp_buffer raise_buf; _setjmp (raise_buf.buf); plouf(); sp -= 4; int n; long * args; for (int i = 0; i < n; i++) args[i] = sp[10-i]; plouf(); return 0; } $ gcc bug.c -c -O3 -std=gnu99 Unable to coalesce ssa_names 2 and 12 which are marked as MUST COALESCE. sp_2(ab) and sp_12(ab) bug.c: In function ‘interprete’: bug.c:27:13: internal compiler error: SSA corruption extern long interprete() ^