/* { dg-do compile { target init_priority } } */ /* Priorities must be in the range [0, 65535]. */ void c1() __attribute__((constructor (-1))); /* { dg-error "priorities" } */ void c2() __attribute__((constructor (65536))); /* { dg-error "priorities" } */ void d1() __attribute__((destructor (-1))); /* { dg-error "priorities" } */ void d2() __attribute__((destructor (65536))); /* { dg-error "priorities" } */ /* Priorities 0-100 are reserved for system libraries. */ void c3() __attribute__((constructor (50))); /* { dg-warning "reserved" } */ void d3() __attribute__((constructor (50))); /* { dg-warning "reserved" } */ /* Priorities must be integral constants. */ /* Pointers, even with constant values, are not allowed. */ void c4() __attribute__((constructor ((void*) 500))); /* { dg-error "priorities" } */ void d4() __attribute__((destructor ((void*) 500))); /* { dg-error "priorities" } */ /* Integer variables are not allowed. */ int i; void c5() __attribute__((constructor ((i)))); /* { dg-error "priorities" } */ void d5() __attribute__((destructor ((i)))); /* { dg-error "priorities" } */ /* Enumeration constants are allowed. */ enum E { e = 500 }; void c6() __attribute__((constructor ((e)))); void d6() __attribute__((destructor ((e))));