1 // { dg-do assemble  }
2 // prms-id: 991
3 
4 class Complex {
5 public:
6 	double re;
7 	double im;
Complex(double r,double i)8 	Complex(double r,double i) : re(r), im(i) {}
9 };
10 
11 Complex cos(const Complex&);
12 
13 extern "C" double cos (double);		// not the same as the above
14 extern "C" double cosh (double);
15 extern "C" double sin (double);
16 extern "C" double sinh (double);
17 
cos(const Complex & arg)18 Complex cos(const Complex& arg) {
19 	double nr = cos(arg.re)*cosh(arg.im);
20 	double ni = -sin(arg.re)*sinh(arg.im);
21 	return Complex(nr,ni);
22 }
23