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