aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-constraints.c
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-03-10 15:27:06 +0000
committerJonathan Wakely <jwakely@redhat.com>2021-03-10 15:27:06 +0000
commitdddd011113b6ceede733d7ae33eca695c06b181b (patch)
tree1a05f9740b62a79cb64a9727bcf617c032629639 /gcc/lra-constraints.c
parentb6073c9faaf2718062ecd8333336a0d3c1457132 (diff)
downloadgcc-dddd011113b6ceede733d7ae33eca695c06b181b.zip
gcc-dddd011113b6ceede733d7ae33eca695c06b181b.tar.gz
gcc-dddd011113b6ceede733d7ae33eca695c06b181b.tar.bz2
libstdc++: Implement LWG 3530 for concept-constrained comparisons
The proposed resolution for this library issue simplifies the constraints for compare_three_way, ranges::equal_to, ranges::less etc. so that they do not work with types which are convertible to pointers but which fail to meet the usual syntactic requirements for the comparisons. This affects the example in PR libstdc++/93628 but doesn't fix the problem described in that report. libstdc++-v3/ChangeLog: * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove. (ranges::equal_to, ranges::not_equal_to): Do not constrain with __eq_builtin_ptr_cmp. (ranges::less, ranges::greater, ranges::less_equal) (ranges::greater_equal): Do not constrain with __less_builtin_ptr_cmp. * libsupc++/compare (compare_three_way): Do not constrain with __3way_builtin_ptr_cmp. * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to... * testsuite/18_support/comparisons/object/lwg3530.cc: ...here. * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
Diffstat (limited to 'gcc/lra-constraints.c')
0 files changed, 0 insertions, 0 deletions