145
|
1 // PR c++/91673 - ICE with noexcept in alias-declaration.
|
|
2 // { dg-do compile { target c++17 } }
|
|
3
|
|
4 template<typename T, bool B>
|
|
5 using U1 = T() noexcept(B);
|
|
6
|
|
7 template<bool B>
|
|
8 struct S {
|
|
9 int I;
|
|
10 static constexpr bool b = true;
|
|
11
|
|
12 template<typename T>
|
|
13 using U2 = T() noexcept(B);
|
|
14
|
|
15 template<typename T>
|
|
16 using U8 = T() noexcept(b);
|
|
17
|
|
18 template<typename T>
|
|
19 using U10 = T(int p) noexcept(noexcept(p));
|
|
20
|
|
21 template<typename T, bool B2>
|
|
22 using U11 = T() noexcept(B2);
|
|
23
|
|
24 using U3 = void() noexcept(B);
|
|
25 using U9 = void() noexcept(b);
|
|
26 using U4 = void() noexcept(noexcept (I));
|
|
27 using U5 = void(int p) noexcept(noexcept(p));
|
|
28
|
|
29 typedef void(*T1)() noexcept(B);
|
|
30 typedef void(*T2)(int p) noexcept(noexcept(p));
|
|
31 };
|
|
32
|
|
33 S<true> s;
|