Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/cpp0x/noexcept57.C @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
145:1830386684a0 | 152:2b5abeee2509 |
---|---|
1 // PR c++/93901 | |
2 // { dg-do compile { target c++11 } } | |
3 | |
4 void *operator new (__SIZE_TYPE__, void *p) noexcept { return p; } | |
5 | |
6 extern void *mem; | |
7 | |
8 constexpr bool YES = true; | |
9 | |
10 struct NoexceptTrueCtor { | |
11 NoexceptTrueCtor() noexcept(true); | |
12 }; | |
13 void NoexceptTrueFun() noexcept(true); | |
14 | |
15 struct NoexceptYesCtor { | |
16 NoexceptYesCtor() noexcept(YES); | |
17 }; | |
18 void NoexceptYesFun() noexcept(YES); | |
19 | |
20 struct NoexceptOneEqOneCtor { | |
21 NoexceptOneEqOneCtor() noexcept(1 == 1); | |
22 }; | |
23 void NoexceptOneEqOneFun() noexcept(1 == 1); | |
24 | |
25 struct NoNoexceptCtor { | |
26 NoNoexceptCtor(); | |
27 }; | |
28 void NoNoexceptFun(); | |
29 | |
30 static_assert(noexcept(new(mem) NoexceptTrueCtor), "2"); // OK | |
31 static_assert(noexcept(NoexceptTrueFun()), "3"); // OK | |
32 | |
33 static_assert(noexcept(new(mem) NoexceptYesCtor), "5"); // fail | |
34 static_assert(noexcept(NoexceptYesFun()), "6"); // OK | |
35 | |
36 static_assert(noexcept(new(mem) NoexceptOneEqOneCtor), "8"); // fail | |
37 static_assert(noexcept(NoexceptOneEqOneFun()), "9"); // OK | |
38 | |
39 static_assert(!noexcept(new(mem) NoNoexceptCtor), "11"); // OK | |
40 static_assert(!noexcept(NoNoexceptFun()), "12"); // OK |