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

--- Comment #17 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Tomasz Kaminski
<[email protected]>:

https://gcc.gnu.org/g:f3cc27ebebb83eb3c69d94b56ad5dd89414c14ed

commit r14-12431-gf3cc27ebebb83eb3c69d94b56ad5dd89414c14ed
Author: Tomasz KamiÅski <[email protected]>
Date:   Fri Feb 27 19:55:19 2026 +0100

    libstdc++: Add #pragma to slience null-dereference warning in
istreambuf_iterator::operator++ [PR105580]

    The warning was produced by following sequence, given an
istream_iterator<char>
    it, such that *it will result in hitting EoF in it->_M_get(), and thus
clearing
    _M_sbuf, the subsequent call to ++it, will result in _M_sbuf->sbumpc() call
on
    null pointer. This is however an false-positive, as in such situation
    it == istream_iteator() returns true, and the iterator should not be
    incremented in first place.

    This patch sliences the issue, by disabling the "-Wnull-dereference" using
    GCC diagnostic pragmas. To work correctly the pragmas needs to be placed
around
    streambuf functions on which the issue originating from istreambuf_iterator
are
    reported.

            PR libstdc++/105580

    libstdc++-v3/ChangeLog:

            * include/std/streambuf (streambuf::gptr, streambuf::egptr)
            (streambuf::gbump): Surround with pragma disabling
-Wnull-dereference.
            * testsuite/24_iterators/istreambuf_iterator/105580.cc: New test.

    Reviewed-by: Jonathan Wakely <[email protected]>
    Signed-off-by: Tomasz KamiÅski <[email protected]>
            (cherry picked from commits
            8758503918a91dacff4dbc7126eced21787fbfc9
            bfc2b87f8244a13ab00e8e3fe2af1d6d18fcaa36
            a523d1ecc89dcb7ea205e3de22d00443d4a0d91d)

Reply via email to