// { dg-do run } // PRMS id: 6863 extern "C" int printf(const char *, ...); extern "C" void abort(); enum ENUM {E1=0, E2 }; int d; class AAA{ public: AAA() {a = new char[10];printf("constructor AAA() called\n");} AAA(int) {printf("constructor AAA(int) called\n");} ~AAA(){ printf("destructor ~AAA() called\n"); d = 1; } operator int () { return 1;} char *a; int i; }; struct sentinel { ~sentinel () { if (d == 0) abort (); } } s; /* forward decl here causes gcc not to execute ct and dt for arr1 */ extern AAA arr1[]; AAA arr1[] = {(int)E1 }; int main() { return 0; }