[Bug libstdc++/68210] nothrow operator fails to call default new

matthijs at stdin dot nl gcc-bugzilla@gcc.gnu.org
Fri Jul 29 16:27:00 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68210

Matthijs Kooijman <matthijs at stdin dot nl> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |matthijs at stdin dot nl

--- Comment #8 from Matthijs Kooijman <matthijs at stdin dot nl> ---
Note that in comment:2, Jonathan Wakely pointed out a caveat:

> Also we certainly don't want to conform to the new requirement when
> libstdc++ is built with -fno-exceptions, because allocation failure
> would abort in operator new(size_t) and so the nothrow version never
> gets a chance to handle the exception and return null.

But this was not taken into account when implementing the fix for this issue,
meaning nothrow operators are now effectively useless with -fno-exceptions (and
there is thus no way to handle allocation failure other than aborting in that
case).

I created a new bug report about this here:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106477


More information about the Gcc-bugs mailing list