This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/12054] Improper handling of exception throw while constructing exception
- From: "jason at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Aug 2003 18:54:57 -0000
- Subject: [Bug c++/12054] Improper handling of exception throw while constructing exception
- References: <20030825145223.12054.sabre@nondot.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12054
jason at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |INVALID
------- Additional Comments From jason at gcc dot gnu dot org 2003-08-27 18:54 -------
This is not a bug.
15.5.1 The terminate() function [except.terminate]
1 In the following situations exception handling must be abandoned for
less subtle error handling techniques:
- when the exception handling mechanism, after completing evaluation
of the expression to be thrown but
before the exception is caught (15.1), calls a user function that
exits via an uncaught exception,134)
- when the exception handling mechanism cannot find a handler for a
thrown exception (15.3), or
- when the destruction of an object during stack unwinding (15.2)
exits using an exception, or
__________________
134) For example, if the object being thrown is of a class with a
copy constructor, terminate() will be called if that copy construc-
tor exits with an exception during a throw.
Indeed, the cited section of the ABI document says
(If the copy constructor itself exits by throwing an exception,
terminate() is called.)