Last change
on this file was 2036, checked in by bird, 20 years ago |
Initial revision
|
-
Property cvs2svn:cvs-rev
set to
1.1
-
Property svn:eol-style
set to
native
-
Property svn:executable
set to
*
-
Property svn:keywords
set to
Author Date Id Revision
|
File size:
1.3 KB
|
Line | |
---|
1 | #include "tst-tls10.h"
|
---|
2 |
|
---|
3 | #ifdef USE_TLS__THREAD
|
---|
4 | __thread int dummy __attribute__((visibility ("hidden"))) = 12;
|
---|
5 | __thread struct A a1 = { 4, 5, 6 };
|
---|
6 | __thread struct A a2 = { 7, 8, 9 };
|
---|
7 | __thread struct A a3 __attribute__((tls_model("initial-exec")))
|
---|
8 | = { 10, 11, 12 };
|
---|
9 | __thread struct A a4 __attribute__((tls_model("initial-exec")))
|
---|
10 | = { 13, 14, 15 };
|
---|
11 | static __thread struct A local1 = { 16, 17, 18 };
|
---|
12 | static __thread struct A local2 __attribute__((tls_model("initial-exec")))
|
---|
13 | = { 19, 20, 21 };
|
---|
14 |
|
---|
15 | void
|
---|
16 | check1 (void)
|
---|
17 | {
|
---|
18 | if (a1.a != 4 || a1.b != 5 || a1.c != 6)
|
---|
19 | abort ();
|
---|
20 | if (a2.a != 22 || a2.b != 23 || a2.c != 24)
|
---|
21 | abort ();
|
---|
22 | if (a3.a != 10 || a3.b != 11 || a3.c != 12)
|
---|
23 | abort ();
|
---|
24 | if (a4.a != 25 || a4.b != 26 || a4.c != 27)
|
---|
25 | abort ();
|
---|
26 | if (local1.a != 16 || local1.b != 17 || local1.c != 18)
|
---|
27 | abort ();
|
---|
28 | if (local2.a != 19 || local2.b != 20 || local2.c != 21)
|
---|
29 | abort ();
|
---|
30 | }
|
---|
31 |
|
---|
32 | struct A *
|
---|
33 | f1a (void)
|
---|
34 | {
|
---|
35 | return &a1;
|
---|
36 | }
|
---|
37 |
|
---|
38 | struct A *
|
---|
39 | f2a (void)
|
---|
40 | {
|
---|
41 | return &a2;
|
---|
42 | }
|
---|
43 |
|
---|
44 | struct A *
|
---|
45 | f3a (void)
|
---|
46 | {
|
---|
47 | return &a3;
|
---|
48 | }
|
---|
49 |
|
---|
50 | struct A *
|
---|
51 | f4a (void)
|
---|
52 | {
|
---|
53 | return &a4;
|
---|
54 | }
|
---|
55 |
|
---|
56 | struct A *
|
---|
57 | f5a (void)
|
---|
58 | {
|
---|
59 | return &local1;
|
---|
60 | }
|
---|
61 |
|
---|
62 | struct A *
|
---|
63 | f6a (void)
|
---|
64 | {
|
---|
65 | return &local2;
|
---|
66 | }
|
---|
67 |
|
---|
68 | int
|
---|
69 | f1b (void)
|
---|
70 | {
|
---|
71 | return a1.a;
|
---|
72 | }
|
---|
73 |
|
---|
74 | int
|
---|
75 | f2b (void)
|
---|
76 | {
|
---|
77 | return a2.b;
|
---|
78 | }
|
---|
79 |
|
---|
80 | int
|
---|
81 | f3b (void)
|
---|
82 | {
|
---|
83 | return a3.c;
|
---|
84 | }
|
---|
85 |
|
---|
86 | int
|
---|
87 | f4b (void)
|
---|
88 | {
|
---|
89 | return a4.a;
|
---|
90 | }
|
---|
91 |
|
---|
92 | int
|
---|
93 | f5b (void)
|
---|
94 | {
|
---|
95 | return local1.b;
|
---|
96 | }
|
---|
97 |
|
---|
98 | int
|
---|
99 | f6b (void)
|
---|
100 | {
|
---|
101 | return local2.c;
|
---|
102 | }
|
---|
103 | #endif
|
---|
Note:
See
TracBrowser
for help on using the repository browser.