]>
Commit | Line | Data |
---|---|---|
1a1a6bde RM |
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 | |
20 | unused (void) | |
21 | { | |
22 | tdata1 = -1; | |
23 | tdata2 = -2; | |
24 | tdata3 = -3; | |
25 | tbss1 = -4; | |
26 | tbss2 = -5; | |
27 | tbss3 = -6; | |
28 | } |