#include <stdio.h> | |
#ifndef N | |
#define N 0 | |
#endif | |
#define CONCAT1(s, n) s##n | |
#define CONCAT(s, n) CONCAT1(s, n) | |
__thread int CONCAT (v, N) = 4; | |
int | |
CONCAT (tlsmod17a, N) (void) | |
{ | |
int *p = &CONCAT (v, N); | |
/* GCC assumes &var is never NULL, add optimization barrier. */ | |
asm volatile ("" : "+r" (p)); | |
if (p == NULL || *p != 4) | |
{ | |
printf ("fail %d %p\n", N, p); | |
return 1; | |
} | |
return 0; | |
} |