]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/initpri1.c
Update copyright years.
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / initpri1.c
1 /* { dg-do run { target init_priority } } */
2
3 extern void abort (void);
4
5 int i;
6 int j;
7
8 void c1() __attribute__((constructor (500)));
9 void c2() __attribute__((constructor (700)));
10 void c3() __attribute__((constructor (600)));
11
12 void c1() {
13 if (i++ != 0)
14 abort ();
15 }
16
17 void c2() {
18 if (i++ != 2)
19 abort ();
20 }
21
22 void c3() {
23 if (i++ != 1)
24 abort ();
25 }
26
27 void d1() __attribute__((destructor (500)));
28 void d2() __attribute__((destructor (700)));
29 void d3() __attribute__((destructor (600)));
30
31 void d1() {
32 if (--i != 0)
33 abort ();
34 }
35
36 void d2() {
37 if (--i != 2)
38 abort ();
39 }
40
41 void d3() {
42 if (j != 2)
43 abort ();
44 if (--i != 1)
45 abort ();
46 }
47
48 void cd4() __attribute__((constructor (800), destructor (800)));
49
50 void cd4() {
51 if (i != 3)
52 abort ();
53 ++j;
54 }
55
56 int main () {
57 if (i != 3)
58 return 1;
59 if (j != 1)
60 abort ();
61 return 0;
62 }