Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/cpp0x/noexcept57.C @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/cpp0x/noexcept57.C Mon May 25 07:50:57 2020 +0900 @@ -0,0 +1,40 @@ +// PR c++/93901 +// { dg-do compile { target c++11 } } + +void *operator new (__SIZE_TYPE__, void *p) noexcept { return p; } + +extern void *mem; + +constexpr bool YES = true; + +struct NoexceptTrueCtor { + NoexceptTrueCtor() noexcept(true); +}; +void NoexceptTrueFun() noexcept(true); + +struct NoexceptYesCtor { + NoexceptYesCtor() noexcept(YES); +}; +void NoexceptYesFun() noexcept(YES); + +struct NoexceptOneEqOneCtor { + NoexceptOneEqOneCtor() noexcept(1 == 1); +}; +void NoexceptOneEqOneFun() noexcept(1 == 1); + +struct NoNoexceptCtor { + NoNoexceptCtor(); +}; +void NoNoexceptFun(); + +static_assert(noexcept(new(mem) NoexceptTrueCtor), "2"); // OK +static_assert(noexcept(NoexceptTrueFun()), "3"); // OK + +static_assert(noexcept(new(mem) NoexceptYesCtor), "5"); // fail +static_assert(noexcept(NoexceptYesFun()), "6"); // OK + +static_assert(noexcept(new(mem) NoexceptOneEqOneCtor), "8"); // fail +static_assert(noexcept(NoexceptOneEqOneFun()), "9"); // OK + +static_assert(!noexcept(new(mem) NoNoexceptCtor), "11"); // OK +static_assert(!noexcept(NoNoexceptFun()), "12"); // OK