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