1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #include <stdio.h>
- #include <tls.h>
- #ifdef USE_TLS
- # include "tls-macros.h"
- extern int in_dso (int n, int *caller_foop);
- COMMON_INT_DEF(comm_n);
- int
- in_dso2 (void)
- {
- int *foop;
- int result = 0;
- static int n;
- int *np;
- puts ("foo"); /* Make sure PLT is used before macros. */
- __asm__ ("" ::: "memory");
- foop = TLS_GD (foo);
- np = TLS_GD (comm_n);
- if (n != *np)
- {
- printf ("n = %d != comm_n = %d\n", n, *np);
- result = 1;
- }
- result |= in_dso (*foop = 42 + n++, foop);
- *foop = 16;
- return result;
- }
- #endif
|