Align stack to 16 bytes when calling __errno_location
[glibc.git] / elf / tst-tlsalign-vars.c
blob01b3501d3b8b4567c0451a2c46352e3c32fe8ef8
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. */
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)));
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). */
19 void
20 unused (void)
22 tdata1 = -1;
23 tdata2 = -2;
24 tdata3 = -3;
25 tbss1 = -4;
26 tbss2 = -5;
27 tbss3 = -6;