/* { dg-do compile } */ /* { dg-require-effective-target tls } */ /* { dg-skip-if "" { arc*-*-elf* } } */ /* { dg-options "-O3 -std=gnu99" } */ /* Check if addressing the `pos` member of struct is done via tls mechanism. */ struct callchain_cursor { int last; long long pos; } __thread a; void fn1 (struct callchain_cursor *p1) { p1->pos++; } extern void fn3 (void); void fn2 (void) { struct callchain_cursor *b = &a; while (1) { fn3 (); fn1 (b); } } /* { dg-final { scan-assembler "r25,@a@tpoff" } } */