]> gcc.gnu.org Git - gcc.git/commit
libstdc++: Disable __gnu_debug::__is_singular(T*) in constexpr [PR109517]
authorJonathan Wakely <jwakely@redhat.com>
Tue, 10 Dec 2024 10:56:41 +0000 (10:56 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 11 Dec 2024 21:51:41 +0000 (21:51 +0000)
commit9616deb23a17ebe81ad89ede191d7f9f752abdec
tree6b10dcaf0493da6c99b1e3d0ae56f33d31193cce
parent3aeb2edee2f9fc39ab77c7e020f09d7204b167ac
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.
libstdc++-v3/include/debug/helper_functions.h
This page took 0.068396 seconds and 6 git commands to generate.