Title
Adjust note about terminate
Status
c++23
Section
[compliance]
Submitter
CA

Created on 2023-02-01.00:00:00 last changed 13 months ago

Messages

Date: 2023-02-13.11:31:32

Proposed resolution:

This wording is relative to N4928.

  1. Modify [compliance], "Freestanding implementations", as indicated:

    -4- [Note 1: Throwing a standard library provided exception is not observably different from terminate() if the implementation does not unwind the stack during exception handling ([except.handle]) and the user's program contains no catch blocks. — end note]
Date: 2023-02-13.00:00:00

[ 2023-02-13 Approved at February 2023 meeting in Issaquah. Status changed: Immediate → WP. ]

Date: 2023-02-07.01:47:10

[ Issaquah 2023-02-06; LWG ]

If the note isn't true then remove it.
Poll: keep note and change as proposed? 3/1/10.
Poll: drop the note entirely? 10/0/5.
Drop the note and move to Immediate for C++20: 9/0/2.

Date: 2023-02-07.01:47:10

This is the resolution for NB comment CA-076

[compliance] p4 has this note:

[Note 1: Throwing a standard library provided exception is not observably different from terminate() if the implementation does not unwind the stack during exception handling ([except.handle]) and the user's program contains no catch blocks. — end note]

Even under the conditions described by the note, a call to terminate() is observably different from throwing an exception if the current terminate_handler function observes what would have been the currently handled exception in the case where the exception was thrown.

The set of conditions should be extended to include something along the lines of "and the current terminate_handler function simply calls abort()".

Previous resolution [SUPERSEDED]:

This wording is relative to N4928.

  1. Modify [compliance], "Freestanding implementations", as indicated:

    -4- [Note 1: Throwing a standard library provided exception is not observably different from terminate() if the implementation does not unwind the stack during exception handling ([except.handle]) and the user's program contains no catch blocks and the current terminate_handler function simply calls abort(). — end note]
History
Date User Action Args
2023-11-22 15:47:43adminsetstatus: wp -> c++23
2023-02-13 11:31:32adminsetmessages: + msg13398
2023-02-13 11:31:32adminsetstatus: immediate -> wp
2023-02-07 01:47:10adminsetmessages: + msg13280
2023-02-07 01:47:10adminsetstatus: new -> immediate
2023-02-01 20:16:54adminsetmessages: + msg13241
2023-02-01 00:00:00admincreate