Full name of submitter (unless configured in github; will be published with the issue): Hubert Tong
Reference (section label): [except.ctor], [except.handle], [except.terminate]
Link to reflector thread (if any): N/A
Issue description:
https://wg21.link/except.ctor#2 describes stack unwinding with the assumption that there is a try block. When no matching handler is found but stack unwinding still occurs (instead of being omitted by calling std::terminate immediately), there is no try block corresponding to the implicit handler.
Suggested resolution:
- Explicitly identify where the implicit try block is for the applicable cases in https://wg21.link/except.terminate#1.
- Update https://wg21.link/except.handle#6 to end the search when the implicit try block is encountered.
- Remove any wording (including in the note in https://wg21.link/except.terminate#1) that separately describes calling
std::terminate if the condition implies that no matching handler was found.
Full name of submitter (unless configured in github; will be published with the issue): Hubert Tong
Reference (section label): [except.ctor], [except.handle], [except.terminate]
Link to reflector thread (if any): N/A
Issue description:
https://wg21.link/except.ctor#2 describes stack unwinding with the assumption that there is a try block. When no matching handler is found but stack unwinding still occurs (instead of being omitted by calling
std::terminateimmediately), there is no try block corresponding to the implicit handler.Suggested resolution:
std::terminateif the condition implies that no matching handler was found.