[Bug libstdc++/86130] Expect SIGBUS but program just silently exits
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jun 13 15:13:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86130
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |msebor at gcc dot gnu.org
Component|c++ |libstdc++
--- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> ---
The iostream inserters for char* require the pointer be non-null (and valid),
so their behavior is undefined otherwise. Libstdc++ detects the null pointer
and sets badbit in response which has the effect of discarding all subsequent
output sent to the stream.
If Clang/libc++ fails with a SEGV that's most likely because libc++ doesn't
have this feature.
FWIW, I don't think think detecting null pointers like this in the library is a
useful feature. They should be treated the same as any other invalid pointer:
i.e., let GCC decide what to do, which may be to issue a warning when it can
detect the pointer is null (and either let the code SEGV or drop the
dereference).
More information about the Gcc-bugs
mailing list