This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/56126] -fno-exceptions should activate -fcheck-new or issue diagnostic for all new operators without throw()
- From: "bruck.michael at googlemail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 08 Jan 2015 21:20:15 +0000
- Subject: [Bug c++/56126] -fno-exceptions should activate -fcheck-new or issue diagnostic for all new operators without throw()
- Auto-submitted: auto-generated
- References: <bug-56126-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56126
--- Comment #11 from Michael Bruck <bruck.michael at googlemail dot com> ---
(In reply to Olaf van der Spek from comment #10)
> > I quoted it to illustrate that returning NULL is the intuitive option here,
> > while abort() is a completely new approach. Returning NULL is what I would
> > expect to be the case when -fno-exceptions is active and it is what happens in
> > the libc++ implementation AFAIK.
>
> -fno-exceptions transforms throws into aborts in the STL.
> Unfortunately it doesn't do that for other code but I've filed a
> feature request for to fix that.
>
> Given this transformation aborting would be the natural consequence.
> What does the GCC STL do?
throwing is undefined behavior with -fno-exceptions. Allocation failure is a
simple error and should not kill your program.
> BTW, what's your use case? Do you really want to check NULL on every
> call to new?
With -fno-exceptions you have to check all functions for errors, including
allocation.