URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [g++.dg/] [special/] [initpri1.C] - Rev 301
Compare with Previous | Blame | View Log
/* { dg-do run { target init_priority } } */
extern "C" 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;
}