-
- Downloads
c++: P2865R5, Remove Deprecated Array Comparisons from C++26 [PR117788]
This patch implements P2865R5 by promoting the warning to permerror in
C++26 only.
In C++20 we should warn even without -Wall. Jason fixed this in r15-5713
but let's add a test that doesn't use -Wall.
This caused a FAIL in conditionally_borrowed.cc because we end up
comparing two array types in equality_comparable_with ->
__weakly_eq_cmp_with. That could be fixed in libstc++, perhaps by
adding std::decay in the appropriate place.
PR c++/117788
gcc/c-family/ChangeLog:
* c-warn.cc (do_warn_array_compare): Emit a permerror in C++26.
gcc/cp/ChangeLog:
* typeck.cc (cp_build_binary_op) <case EQ_EXPR>: Don't check
warn_array_compare. Check tf_warning_or_error instead of just
tf_warning. Maybe return an error_mark_node in C++26.
<case LE_EXPR>: Likewise.
gcc/testsuite/ChangeLog:
* c-c++-common/Warray-compare-1.c: Expect an error in C++26.
* c-c++-common/Warray-compare-3.c: Likewise.
* c-c++-common/Warray-compare-4.c: New test.
* c-c++-common/Warray-compare-5.c: New test.
* g++.dg/warn/Warray-compare-1.C: New test.
libstdc++-v3/ChangeLog:
* testsuite/std/ranges/adaptors/conditionally_borrowed.cc: Add a
FIXME, adjust.
Reviewed-by:
Jason Merrill <jason@redhat.com>
Showing
- gcc/c-family/c-warn.cc 19 additions, 6 deletionsgcc/c-family/c-warn.cc
- gcc/cp/typeck.cc 32 additions, 24 deletionsgcc/cp/typeck.cc
- gcc/testsuite/c-c++-common/Warray-compare-1.c 14 additions, 7 deletionsgcc/testsuite/c-c++-common/Warray-compare-1.c
- gcc/testsuite/c-c++-common/Warray-compare-3.c 4 additions, 3 deletionsgcc/testsuite/c-c++-common/Warray-compare-3.c
- gcc/testsuite/c-c++-common/Warray-compare-4.c 50 additions, 0 deletionsgcc/testsuite/c-c++-common/Warray-compare-4.c
- gcc/testsuite/c-c++-common/Warray-compare-5.c 44 additions, 0 deletionsgcc/testsuite/c-c++-common/Warray-compare-5.c
- gcc/testsuite/g++.dg/warn/Warray-compare-1.C 26 additions, 0 deletionsgcc/testsuite/g++.dg/warn/Warray-compare-1.C
- libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc 4 additions, 1 deletion...3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
Loading
Please register or sign in to comment