Implement D1959R0, remove weak_equality and strong_equality.
authorJason Merrill <jason@redhat.com>
Thu, 7 Nov 2019 17:06:09 +0000 (12:06 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 7 Nov 2019 17:06:09 +0000 (12:06 -0500)
commit4629ea55608ee2f1e04186dce2c7f55af0537ccb
tree346c49fc402d4acd850ead528e3511d706db7946
parentc38ee9a2e87ea6d23580c364b3997acfce4a125c
Implement D1959R0, remove weak_equality and strong_equality.

Shortly after I finished implementing the previous semantics, the
committee decided to remove the *_equality comparison categories, because
they were largely obsoleted by the earlier change that separated operator==
from its original dependency on operator<=>.

gcc/cp/
* method.c (enum comp_cat_tag, comp_cat_info): Remove *_equality.
(genericize_spaceship, common_comparison_type): Likewise.
* typeck.c (cp_build_binary_op): Move SPACESHIP_EXPR to be with the
relational operators, exclude other types no longer supported.
libstdc++-v3/
* libsupc++/compare: Remove strong_equality and weak_equality.

From-SVN: r277925
gcc/cp/ChangeLog
gcc/cp/method.c
gcc/cp/typeck.c
gcc/testsuite/g++.dg/cpp2a/spaceship-scalar1-neg.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp2a/spaceship-scalar1.C
gcc/testsuite/g++.dg/cpp2a/spaceship-scalar1a.C
gcc/testsuite/g++.dg/cpp2a/spaceship-scalar3.C
libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/compare