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

--- Comment #10 from Martin Sebor <msebor at gcc dot gnu.org> ---
As a data point, calling printf ("%s", p) does lead to a segfault in Glibc for
a null p because GCC turns the call into puts(p) which doesn't have the same
feature (see https://sourceware.org/bugzilla/show_bug.cgi?id=5618 for the
background).

I think most users prefer invalid uses of pointers to fail loudly so they can
be caught early.  Few users expect output functions to fail, and even fewer
bother to check for failures when writing to standard streams.

Besides the inserter without the test resulting in more efficient code and GCC
emitting a warning when a null pointer is passed to it (it doesn't now even
though it should because of the strlen call), leaving it to the compiler to
deal with can also lead to better code downstream thanks to
-fdelete-null-pointer-checks.

Reply via email to