testsuite: Add noexcept(false) to throwing destructor

I think this test is intended to check this property of the C++
standard:

"If a destructor directly invoked by stack unwinding exits via an
exception, std::terminate is invoked." [except.throw]

Since C++11 any exception escaping a destructor will call
std::terminate, so the test would terminate even if the unwinding
behaviour was wrong.

Give the destructor a potentially-throwing exception specification,
so that we know that terminate was called for the right reason.

gcc/testsuite/ChangeLog:

	* g++.dg/compat/eh/filter2_y.C: Add noexcept(false) to
	destructor.
This commit is contained in:
Jonathan Wakely 2020-10-23 15:03:38 +01:00
parent 50106208ff
commit b66b30a807

View File

@ -9,6 +9,12 @@ struct a
a () { }
~a ()
#if __cplusplus >= 201103L
// Give this destructor a potentially-throwing exception specification so
// that we verify std::terminate gets called due to an exception during
// unwinding, not just because the destructor is noexcept.
noexcept(false)
#endif
{
try
{