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

--- Comment #13 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Jonathan Wakely
<r...@gcc.gnu.org>:

https://gcc.gnu.org/g:845a0b71c82ad8f1d9967a6f15d10ef402f7f2e5

commit r14-11182-g845a0b71c82ad8f1d9967a6f15d10ef402f7f2e5
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Tue Dec 10 10:56:41 2024 +0000

    libstdc++: Disable __gnu_debug::__is_singular(T*) in constexpr [PR109517]

    Because of PR c++/85944 we have several bugs where _GLIBCXX_DEBUG causes
    errors for constexpr code. Although Bug 117966 could be fixed by
    avoiding redundant debug checks in std::span, and Bug 106212 could be
    fixed by avoiding redundant debug checks in std::array, there are many
    more cases where similar __glibcxx_requires_valid_range checks fail to
    compile and removing the checks everywhere isn't desirable.

    This just disables the __gnu_debug::__check_singular(T*) check during
    constant evaluation. Attempting to dereference a null pointer will
    certainly fail during constant evaluation (if it doesn't fail then it's
    a compiler bug and not the library's problem). Disabling this check
    during constant evaluation shouldn't do any harm.

    libstdc++-v3/ChangeLog:

            PR libstdc++/109517
            PR libstdc++/109976
            * include/debug/helper_functions.h (__valid_range_aux): Treat
            all input iterator ranges as valid during constant evaluation.

    (cherry picked from commit 9616deb23a17ebe81ad89ede191d7f9f752abdec)

Reply via email to