diff options
Diffstat (limited to 'test/tls/tst-tlsmod4.c')
| -rw-r--r-- | test/tls/tst-tlsmod4.c | 38 | 
1 files changed, 38 insertions, 0 deletions
| diff --git a/test/tls/tst-tlsmod4.c b/test/tls/tst-tlsmod4.c new file mode 100644 index 000000000..5285e821b --- /dev/null +++ b/test/tls/tst-tlsmod4.c @@ -0,0 +1,38 @@ +#include <stdio.h> + +#include <tls.h> + +#ifdef USE_TLS +# include "tls-macros.h" + + +COMMON_INT_DEF(baz); + + +int +in_dso (int n, int *caller_bazp) +{ +  int *bazp; +  int result = 0; + +  puts ("foo");			/* Make sure PLT is used before macros.  */ +  asm ("" ::: "memory"); + +  bazp = TLS_GD (baz); + +  if (caller_bazp != NULL && bazp != caller_bazp) +    { +      printf ("callers address of baz differs: %p vs %p\n", caller_bazp, bazp); +      result = 1; +    } +  else if (*bazp != n) +    { +      printf ("baz != %d\n", n); +      result = 1; +    } + +  *bazp = 16; + +  return result; +} +#endif | 
