mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 03:46:53 -05:00
c++: add another testcase [PR121351]
Here's a previously accepted testcase that is now ambiguous after r16-2771-gb9f1cc4e119da, since the uninstantiated constraints are equivalent but the partially instantiated constraints aren't, so the two member functions no longer correspond. PR c++/121351 gcc/testsuite/ChangeLog: * g++.dg/cpp2a/concepts-using6.C: New test.
This commit is contained in:
20
gcc/testsuite/g++.dg/cpp2a/concepts-using6.C
Normal file
20
gcc/testsuite/g++.dg/cpp2a/concepts-using6.C
Normal file
@@ -0,0 +1,20 @@
|
||||
// PR c++/121351
|
||||
// { dg-do compile { target c++20 } }
|
||||
|
||||
template<class T> concept C = true;
|
||||
|
||||
template<class T>
|
||||
struct A {
|
||||
template<class U> void f(U) requires C<T>; // #1
|
||||
};
|
||||
|
||||
template<class T>
|
||||
struct B : A<T*> {
|
||||
using A<T*>::f;
|
||||
template<class U> void f(U) requires C<T>; // #2
|
||||
};
|
||||
|
||||
int main() {
|
||||
B<int> b;
|
||||
b.f(42); // { dg-error "ambiguous" } #1 and #2 don't correspond
|
||||
}
|
||||
Reference in New Issue
Block a user