/* { dg-do compile } */ | |
extern int sched_yield (void); | |
static volatile int serial = 0; | |
__attribute__((no_sanitize_thread)) | |
void step (int i) | |
{ | |
while (__atomic_load_n (&serial, __ATOMIC_ACQUIRE) != i - 1) | |
sched_yield (); | |
__atomic_store_n (&serial, i, __ATOMIC_RELEASE); | |
} | |
/* { dg-final { scan-assembler-not "__tsan_func_entry" } } */ | |
/* { dg-final { scan-assembler-not "__tsan_func_exit" } } */ |