1/* { dg-do compile } */
2
3extern int sched_yield (void);
4static volatile int serial = 0;
5
6__attribute__((no_sanitize_thread))
7void step (int i)
8{
9   while (__atomic_load_n (&serial, __ATOMIC_ACQUIRE) != i - 1)
10     sched_yield ();
11   __atomic_store_n (&serial, i, __ATOMIC_RELEASE);
12}
13
14/* { dg-final { scan-assembler-not "__tsan_func_entry" } } */
15/* { dg-final { scan-assembler-not "__tsan_func_exit" } } */
16