source: vendor/glibc-tests/glibc/elf/tst-tlsmod7.c

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 };
11static __thread struct A local1 = { 16, 17, 18 };
12static __thread struct A local2 __attribute__((tls_model("initial-exec")))
13 = { 19, 20, 21 };
14
15void
16check1 (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
32struct A *
33f1a (void)
34{
35 return &a1;
36}
37
38struct A *
39f2a (void)
40{
41 return &a2;
42}
43
44struct A *
45f3a (void)
46{
47 return &a3;
48}
49
50struct A *
51f4a (void)
52{
53 return &a4;
54}
55
56struct A *
57f5a (void)
58{
59 return &local1;
60}
61
62struct A *
63f6a (void)
64{
65 return &local2;
66}
67
68int
69f1b (void)
70{
71 return a1.a;
72}
73
74int
75f2b (void)
76{
77 return a2.b;
78}
79
80int
81f3b (void)
82{
83 return a3.c;
84}
85
86int
87f4b (void)
88{
89 return a4.a;
90}
91
92int
93f5b (void)
94{
95 return local1.b;
96}
97
98int
99f6b (void)
100{
101 return local2.c;
102}
103#endif
Note: See TracBrowser for help on using the repository browser.