(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr86314.c
       1  // PR target/86314
       2  // { dg-do run { target sync_int_long_stack } }
       3  // { dg-options "-O2" }
       4  
       5  __attribute__((noinline, noclone)) unsigned long
       6  foo (unsigned long *p)
       7  {
       8    unsigned long m = 1UL << ((*p & 1) ? 1 : 0);
       9    unsigned long n = __atomic_fetch_or (p, m, __ATOMIC_SEQ_CST);
      10    return (n & m) == 0;
      11  }
      12  
      13  int
      14  main ()
      15  {
      16    unsigned long v = 1;
      17    if (foo (&v) != 1)
      18      __builtin_abort ();
      19    return 0;
      20  }