1// { dg-do run  }
2// GROUPS passed constructors
3#include <cstdio>
4#include <cstdlib>
5#include <iostream>
6
7#define MAGIC 7654
8
9class complex {
10        double re;
11        double im;
12        int magic;
13        static int count;
14public:
15        complex() { re=im=0; magic=MAGIC; }
16        complex(double d) { re=d; im=0; magic=MAGIC; }
17        complex(double d, double d2) {re=d; im=d2; magic=MAGIC; }
18        ~complex() {if(magic!=MAGIC) {std::printf("FAIL\n"); std::exit(1);}}
19        friend std::ostream& operator << (std::ostream& o, const complex& c)
20        { return o << "(" << c.re << "," << c.im << ")"; }
21};
22
23int complex::count=0;
24
25int main()
26{
27        complex v[6] = {1, complex(1,2), complex(), 2 }; // ARM Sect. 12.6.1
28        int i;                                           // page 289
29
30        for(i=0; i<6; i++) ;
31	std::printf ("PASS\n");
32
33        return 0;
34}
35