d: Merge upstream dmd 47871363d, druntime, c52e28b7, phobos 99e9c1b77.
[official-gcc.git] / gcc / testsuite / gdc.test / runnable / tls.d
blob04bbbd1dfb8737e54b4c48f200364a403be65e65
1 // EXTRA_SOURCES: imports/tlsa.d
3 import core.stdc.stdio;
4 import imports.tlsa;
6 int x = 3;
8 void bar()
10 int* px = &x;
11 assert(x == 3);
12 x++;
13 printf("x = %d\n", x);
14 px = &x;
15 printf("px = %p\n", px);
16 assert(*px == 4);
17 (*px)++;
18 assert(x == 5);
22 void test1()
24 bar();
25 printf("%d\n", x);
26 printf("%d\n", foo!()());
29 /************************************/
31 long fooa;
32 long foob;
33 int bara = 0x12345678;
34 int barb = 0x9ABCDEFF;
36 void test2()
38 fooa++;
39 foob--;
40 bara++;
41 barb++;
42 printf("%lld %lld %x %x\n", fooa, foob, bara, barb);
43 assert(fooa == 1);
44 assert(foob == -1);
45 assert(bara == 0x12345679);
46 assert(barb == 0x9ABCDF00);
49 /************************************/
51 int abc3(T)(T t)
53 static T qqq;
54 static T rrr;
55 static T sss = 8;
56 static T ttt = 9;
57 printf("qqq = %d, rrr = %d, sss = %d, ttt = %d\n", qqq, rrr, sss, ttt);
58 assert(sss == 8);
59 assert(ttt == 9);
60 rrr += 7;
61 return t + ++qqq + rrr;
64 void test3()
66 auto i = abc3(3);
67 printf("i = x%x\n", i);
68 assert(i == 11);
69 i = abc3(4);
70 printf("i = x%x\n", i);
71 assert(i == 20);
74 /************************************/
76 void test4()
79 auto i = bar4();
80 printf("i = x%x\n", i);
81 assert(i == 0x23);
82 i = abc4(4);
83 printf("i = x%x\n", i);
84 assert(i == 0x31);
87 /************************************/
89 int main()
91 test1();
92 test2();
93 test3();
94 test4();
96 printf("Success\n");
97 return 0;