ubuntu-buildroot/output/build/host-gcc-initial-11.4.0/gcc/testsuite/gcc.target/arc/tls-1.c

32 lines
543 B
C

/* { 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" } } */