blob: 09f69fa53d888d751b1ea596051fddcb57232b22 [file] [log] [blame]
/* { 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" } } */