1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include <stdio.h> #ifndef N # define N 0 #endif static __thread int var = 4; int test (void) { int *p = &var; /* 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; }