1 /* This is for tst-tlsalign-extern.c, which see. It's essential for the 2 purpose of the test that these definitions be in a separate translation 3 unit from the code using the variables. */ 4 5 __thread int tdata1 = 1; 6 __thread int tdata2 __attribute__ ((aligned (0x10))) = 2; 7 __thread int tdata3 __attribute__ ((aligned (0x1000))) = 4; 8 __thread int tbss1; 9 __thread int tbss2 __attribute__ ((aligned (0x10))); 10 __thread int tbss3 __attribute__ ((aligned (0x1000))); 11 12 /* This function is never called. But its presence in this translation 13 unit makes GCC emit the variables above in the order defined (perhaps 14 because it's the order in which they're used here?) rather than 15 reordering them into descending order of alignment requirement--and so 16 keeps it more similar to the tst-tlsalign-static.c case--just in case 17 that affects the bug (though there is no evidence that it does). */ 18 19 void unused(void)20unused (void) 21 { 22 tdata1 = -1; 23 tdata2 = -2; 24 tdata3 = -3; 25 tbss1 = -4; 26 tbss2 = -5; 27 tbss3 = -6; 28 } 29