]>
Commit | Line | Data |
---|---|---|
b15b83fb | 1 | /* { dg-do run } */ |
ada80067 | 2 | /* { dg-require-effective-target tls_runtime } */ |
16c9d3b1 | 3 | /* { dg-add-options tls } */ |
b15b83fb JJ |
4 | |
5 | extern void abort (void); | |
6 | extern void *memset (void *, int, __SIZE_TYPE__); | |
7 | ||
8 | struct A | |
9 | { | |
10 | char pad[48]; | |
11 | int i; | |
12 | int pad2; | |
13 | int j; | |
14 | }; | |
15 | __thread struct A a; | |
16 | ||
17 | int * | |
18 | __attribute__((noinline)) | |
19 | foo (void) | |
20 | { | |
21 | return &a.i; | |
22 | } | |
23 | ||
24 | int | |
25 | main (void) | |
26 | { | |
27 | int *p = foo (); | |
28 | memset (&a, 0, sizeof (a)); | |
29 | a.i = 6; | |
30 | a.j = 8; | |
31 | if (p[0] != 6 || p[1] != 0 || p[2] != 8) | |
32 | abort (); | |
33 | return 0; | |
34 | } |