https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104777
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |9.1.0, 9.4.0 Assignee|mpolacek at gcc dot gnu.org |unassigned at gcc dot gnu.org Summary|[10/11/12 Regression] gcc |[9/10/11/12 Regression] gcc |crashes while compiling a |crashes while compiling a |custom coroutine library |custom coroutine library |sample since |sample |r10-5137-g43aae289866f5ea5 | Target Milestone|10.4 |9.5 Known to work| |8.5.0 --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a C testcase which shows this is a latent bug (derived from the gimple of the reduced testcase in comment #2): _Bool savestate_r; int savestate_ssb; extern void abort(); __thread struct { int t; int tt[1]; } loop; void f (const int * __functor) { _Bool savestate_r0_5; _Bool savestate_r1_6; __asm__("" : "=m" (savestate_ssb), "=r" (savestate_r)); savestate_r0_5 = savestate_r; if (savestate_r0_5 != 0) goto bb3; else goto bb4; bb3: __asm__("" : "=m" (savestate_ssb), "=r" (savestate_r)); savestate_r1_6 = savestate_r; if (savestate_r1_6 != 0) goto bb6; else goto bb5; bb4: __asm__ __volatile__("" : : "m" (loop)); abort (); bb5: __asm__ __volatile__("" : : "m" (loop)); abort (); bb6: return; }