annotate gcc/testsuite/g++.dg/opt/pr83187.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 // { dg-do compile { target c++11 } }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 // { dg-additional-options "-O1 -Wno-pedantic" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 // PR c++/83187 ICE in get_alias_set due to canonical type confusion.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 extern "C" {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 double cos (double);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 double sin (double);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 template <typename> class COMPLEX;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 template <>
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 struct COMPLEX<double>
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 COMPLEX(double r, double i);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 __complex__ mem;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 COMPLEX<double>::COMPLEX (double r, double i)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 : mem {r, i} {}
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 typedef double dbl_t;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 dbl_t var;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 void foo (COMPLEX<double> *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 const dbl_t unused = var;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 *ptr = COMPLEX<double> (cos (var), sin (var));
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 }