131
|
1 // { dg-do compile { target c++11 } }
|
|
2 // { dg-additional-options "-O1 -Wno-pedantic" }
|
|
3 // PR c++/83187 ICE in get_alias_set due to canonical type confusion.
|
|
4
|
|
5 extern "C" {
|
|
6 double cos (double);
|
|
7 double sin (double);
|
|
8 }
|
|
9
|
|
10 template <typename> class COMPLEX;
|
|
11
|
|
12 template <>
|
|
13 struct COMPLEX<double>
|
|
14 {
|
|
15 COMPLEX(double r, double i);
|
|
16
|
|
17 __complex__ mem;
|
|
18 };
|
|
19
|
|
20 COMPLEX<double>::COMPLEX (double r, double i)
|
|
21 : mem {r, i} {}
|
|
22
|
|
23 typedef double dbl_t;
|
|
24
|
|
25 dbl_t var;
|
|
26
|
|
27 void foo (COMPLEX<double> *ptr)
|
|
28 {
|
|
29 const dbl_t unused = var;
|
|
30
|
|
31 *ptr = COMPLEX<double> (cos (var), sin (var));
|
|
32 }
|