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