1// { dg-do run } 2// PRMS id: 6863 3 4extern "C" int printf(const char *, ...); 5extern "C" void abort(); 6 7enum ENUM {E1=0, E2 }; 8int d; 9 10class AAA{ 11public: 12 AAA() {a = new char[10];printf("constructor AAA() called\n");} 13 AAA(int) {printf("constructor AAA(int) called\n");} 14 ~AAA(){ printf("destructor ~AAA() called\n"); d = 1; } 15 operator int () { return 1;} 16 char *a; 17 int i; 18}; 19 20struct sentinel { 21 ~sentinel () { if (d == 0) abort (); } 22} s; 23 24/* forward decl here causes gcc not to execute ct and dt for arr1 */ 25extern AAA arr1[]; 26 27AAA arr1[] = {(int)E1 }; 28 29int main() 30{ 31 return 0; 32} 33