gcc/libstdc++-v3/testsuite/24_iterators
Jason Merrill 57b4daf8dc c++: Refinements to "more constrained".
P2113 from the last C++ meeting clarified that we only compare constraints
on functions or function templates that have equivalent template parameters
and function parameters.

I'm not currently implementing the complicated handling of reversed
comparison operators here; thinking about it now, it seems like a lot of
complexity to support a very weird usage.  If I write two similar comparison
operators to be distinguished by their constraints, why would I write one
reversed?  If they're two unrelated operators, they're very unlikely to be
similar enough for the complexity to help.  I've started a discussion on the
committee reflector about changing these rules.

This change breaks some greedy_ops tests in libstdc++ that were relying on
comparing constraints on unrelated templates, which seems pretty clearly
wrong, so I'm removing those tests for now.

gcc/cp/ChangeLog:

	* call.c (joust): Only compare constraints for non-template
	candidates with matching parameters.
	* pt.c (tsubst_pack_expansion): Fix getting a type parameter
	pack.
	(more_specialized_fn): Only compare constraints for candidates with
	matching parameters.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp2a/concepts-return-req1.C: Expect error.
	* g++.dg/cpp2a/concepts-p2113a.C: New test.
	* g++.dg/cpp2a/concepts-p2113b.C: New test.

libstdc++-v3/ChangeLog:

	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
	Remove greedy_ops tests.
	* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
	Remove greedy_ops tests.
2020-06-20 10:57:21 -04:00
..
associated_types libstdc++: Implement P1878R1 "Constraining Readable Types" 2020-02-07 16:58:43 +00:00
back_insert_iterator libstdc++: Implement C++20 changes to insert iterators 2020-03-27 23:26:01 +00:00
bidirectional Update copyright years. 2020-01-01 12:51:42 +01:00
common_iterator libstdc++: Fix common_iterator::operator-> [PR95322] 2020-05-26 16:17:34 -04:00
contiguous Update copyright years. 2020-01-01 12:51:42 +01:00
counted_iterator libstdc++: Add a move-only testsuite iterator type 2020-03-03 22:44:35 -05:00
customization_points libstdc++: Avoid constraint recursion with iterator_traits (PR 93983) 2020-05-21 07:32:15 +01:00
forward Update copyright years. 2020-01-01 12:51:42 +01:00
front_insert_iterator libstdc++: Implement C++20 changes to insert iterators 2020-03-27 23:26:01 +00:00
headers/iterator libstdc++: Implement C++20 changes to insert iterators 2020-03-27 23:26:01 +00:00
indirect_callable libstdc++: Replace deduced return type in ranges::iter_move (PR 92894) 2020-05-01 14:27:25 +01:00
input Update copyright years. 2020-01-01 12:51:42 +01:00
insert_iterator libstdc++: Fixes for feature test macros (PR 91480) 2020-04-28 23:40:18 +01:00
istream_iterator libstdc++: Fix noexcept-specifier for istream_iterator 2020-02-24 14:22:21 +00:00
istreambuf_iterator libstdc++: Add test for using istreambuf_iterator with sentinel 2020-04-20 22:06:32 +01:00
move_iterator c++: Refinements to "more constrained". 2020-06-20 10:57:21 -04:00
normal_iterator libstdc++: Fix __normal_iterator comparisons for C++20 2020-04-21 23:46:54 +01:00
operations Update copyright years. 2020-01-01 12:51:42 +01:00
ostream_iterator libstdc++: Change compile-only test to run 2020-03-10 09:47:15 +00:00
ostreambuf_iterator Update copyright years. 2020-01-01 12:51:42 +01:00
output Update copyright years. 2020-01-01 12:51:42 +01:00
random_access Update copyright years. 2020-01-01 12:51:42 +01:00
range_access Update copyright years. 2020-01-01 12:51:42 +01:00
range_operations libstdc++: test for failing assertion should use 'run' not 'compile' 2020-02-28 18:41:18 +00:00
reverse_iterator c++: Refinements to "more constrained". 2020-06-20 10:57:21 -04:00
aliases.cc libstdc++: Remove workarounds for constraints on alias templates 2020-02-05 15:09:23 +00:00
container_access.cc Update copyright years. 2020-01-01 12:51:42 +01:00