mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 13:30:06 +00:00
29 lines
1010 B
C
29 lines
1010 B
C
|
/* This is for tst-tlsalign-extern.c, which see. It's essential for the
|
||
|
purpose of the test that these definitions be in a separate translation
|
||
|
unit from the code using the variables. */
|
||
|
|
||
|
__thread int tdata1 = 1;
|
||
|
__thread int tdata2 __attribute__ ((aligned (0x10))) = 2;
|
||
|
__thread int tdata3 __attribute__ ((aligned (0x1000))) = 4;
|
||
|
__thread int tbss1;
|
||
|
__thread int tbss2 __attribute__ ((aligned (0x10)));
|
||
|
__thread int tbss3 __attribute__ ((aligned (0x1000)));
|
||
|
|
||
|
/* This function is never called. But its presence in this translation
|
||
|
unit makes GCC emit the variables above in the order defined (perhaps
|
||
|
because it's the order in which they're used here?) rather than
|
||
|
reordering them into descending order of alignment requirement--and so
|
||
|
keeps it more similar to the tst-tlsalign-static.c case--just in case
|
||
|
that affects the bug (though there is no evidence that it does). */
|
||
|
|
||
|
void
|
||
|
unused (void)
|
||
|
{
|
||
|
tdata1 = -1;
|
||
|
tdata2 = -2;
|
||
|
tdata3 = -3;
|
||
|
tbss1 = -4;
|
||
|
tbss2 = -5;
|
||
|
tbss3 = -6;
|
||
|
}
|