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;

}

Reply via email to