This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 121a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2026-10-11


3239. Redundant specification for stack unwinding for std::terminate

Section: 14.4  [except.handle]     Status: open     Submitter: Yin Xinyu     Date: 2026-09-24

(From submission #1014.)

Subclause 14.4 [except.handle] paragraph 8 specifies:

If no matching handler is found, the function std::terminate is invoked; whether or not the stack is unwound before this invocation of std::terminate is implementation-defined (14.6.2 [except.terminate]).

However, this (and more) is already said in 14.6.2 [except.terminate] paragraph 2:

In the situation where no matching handler is found, it is implementation-defined whether or not the stack is unwound before std::terminate is invoked. ...

Suggested resolution:

Change in 14.4 [except.handle] paragraph 8 as follows:

If no matching handler is found, the function std::terminate is invoked; whether or not the stack is unwound before this invocation of std::terminate is implementation-defined (14.6.2 [except.terminate]).