63 lines
858 B
C
63 lines
858 B
C
/* { dg-do run { target init_priority } } */
|
|
|
|
extern void abort ();
|
|
|
|
int i;
|
|
int j;
|
|
|
|
void c1() __attribute__((constructor (500)));
|
|
void c2() __attribute__((constructor (700)));
|
|
void c3() __attribute__((constructor (600)));
|
|
|
|
void c1() {
|
|
if (i++ != 0)
|
|
abort ();
|
|
}
|
|
|
|
void c2() {
|
|
if (i++ != 2)
|
|
abort ();
|
|
}
|
|
|
|
void c3() {
|
|
if (i++ != 1)
|
|
abort ();
|
|
}
|
|
|
|
void d1() __attribute__((destructor (500)));
|
|
void d2() __attribute__((destructor (700)));
|
|
void d3() __attribute__((destructor (600)));
|
|
|
|
void d1() {
|
|
if (--i != 0)
|
|
abort ();
|
|
}
|
|
|
|
void d2() {
|
|
if (--i != 2)
|
|
abort ();
|
|
}
|
|
|
|
void d3() {
|
|
if (j != 2)
|
|
abort ();
|
|
if (--i != 1)
|
|
abort ();
|
|
}
|
|
|
|
void cd4() __attribute__((constructor (800), destructor (800)));
|
|
|
|
void cd4() {
|
|
if (i != 3)
|
|
abort ();
|
|
++j;
|
|
}
|
|
|
|
int main () {
|
|
if (i != 3)
|
|
return 1;
|
|
if (j != 1)
|
|
abort ();
|
|
return 0;
|
|
}
|