diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/tls/opt-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/tls/opt-1.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/tls/opt-1.c b/gcc/testsuite/gcc.dg/tls/opt-1.c new file mode 100644 index 000000000..f9399e04a --- /dev/null +++ b/gcc/testsuite/gcc.dg/tls/opt-1.c @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fPIC" } */ +/* { dg-options "-O2 -fPIC -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ +/* { dg-require-effective-target tls } */ +/* { dg-require-effective-target fpic } */ + +extern __thread int thr; + +static int x; + +static void +bar (void) +{ + x = 1; +} + +static void +#ifdef __i386__ +__attribute__ ((regparm (3))) +#endif +foo (const char *x, void *y, int *z) +{ + bar (); +} + +void +test (const char *x, void *y) +{ + foo (x, y, &thr); +} |