c++: hash table ICE with variadic alias [PR105003]
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / noexcept57.C
blobaca989127015394380bee6a0059e243f22062842
1 // PR c++/93901
2 // { dg-do compile { target c++11 } }
4 void *operator new (__SIZE_TYPE__, void *p) noexcept { return p; }
6 extern void *mem;
8 constexpr bool YES = true;
10 struct NoexceptTrueCtor {
11         NoexceptTrueCtor() noexcept(true);
13 void NoexceptTrueFun() noexcept(true);
15 struct NoexceptYesCtor {
16         NoexceptYesCtor() noexcept(YES);
18 void NoexceptYesFun() noexcept(YES);
20 struct NoexceptOneEqOneCtor {
21         NoexceptOneEqOneCtor() noexcept(1 == 1);
23 void NoexceptOneEqOneFun() noexcept(1 == 1);
25 struct NoNoexceptCtor {
26         NoNoexceptCtor();
28 void NoNoexceptFun();
30 static_assert(noexcept(new(mem) NoexceptTrueCtor), "2"); // OK
31 static_assert(noexcept(NoexceptTrueFun()), "3"); // OK
33 static_assert(noexcept(new(mem) NoexceptYesCtor), "5"); // fail
34 static_assert(noexcept(NoexceptYesFun()), "6"); // OK
36 static_assert(noexcept(new(mem) NoexceptOneEqOneCtor), "8"); // fail
37 static_assert(noexcept(NoexceptOneEqOneFun()), "9"); // OK
39 static_assert(!noexcept(new(mem) NoNoexceptCtor), "11"); // OK
40 static_assert(!noexcept(NoNoexceptFun()), "12"); // OK