Deallocators and Exceptions

Jim Dehnert dehnert at baalbek.engr.sgi.com
Wed Aug 30 23:23:37 UTC 2000


> From: "Jeffrey D. Oldham" <oldham at codesourcery.com>
> 
> In the draft C++ ABI for IA-64, \S 3.3.3, __cxa_vec_new2 (), what is
> required if dealloc () throws an exception?
> 
> I see three possibilities:
> 
> 1. The C++ standard prohibits deallocators from throwing exceptions.
>    (I could not find such a requirement.)
> 
> 2. Make the result undefined as what happens when a destructor throws
>    an exception.  (See __cxa_new_vec ().)
> 
> 3. Require calling std::terminate () because we cannot guarantee
>    memory will be left in a coherent state.

(2) would be consistent with what we've specified for throws from the
destructor.  Any other observations?  We'll discuss tomorrow.

Jim

-	    Jim Dehnert		dehnert at sgi.com
				(650)933-4272




More information about the cxx-abi-dev mailing list