aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2021-02-02 10:08:48 -0500
committerJason Merrill <jason@redhat.com>2021-02-02 12:11:39 -0500
commit709718d4d89e5976257f53e67dcb8ba704574c56 (patch)
tree045290607875a0c61043a01085bc7b86614eba64 /gcc/testsuite
parentd14cf89b94299d6d66c150fbbb9899a5dd91e7d4 (diff)
downloadgcc-709718d4d89e5976257f53e67dcb8ba704574c56.zip
gcc-709718d4d89e5976257f53e67dcb8ba704574c56.tar.gz
gcc-709718d4d89e5976257f53e67dcb8ba704574c56.tar.bz2
c++: Member fns and deduction guide rewriting [PR98929]
My patch for 96199 had us re-substitute the parameter types of a constructor in order to rewrite mentions of members into dependent references. We need to do that for member functions, too. gcc/cp/ChangeLog: PR c++/98929 PR c++/96199 * error.c (dump_expr): Ignore dummy object. * pt.c (tsubst_baselink): Handle dependent scope. gcc/testsuite/ChangeLog: PR c++/98929 * g++.dg/cpp1z/class-deduction-decltype1.C: New test.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/class-deduction-decltype1.C11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp1z/class-deduction-decltype1.C b/gcc/testsuite/g++.dg/cpp1z/class-deduction-decltype1.C
new file mode 100644
index 0000000..b83f7ad
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/class-deduction-decltype1.C
@@ -0,0 +1,11 @@
+// PR c++/98929
+// { dg-do compile { target c++17 } }
+
+template <typename T>
+struct A {
+ void foo ();
+ using c = decltype (foo ());
+ A (c); // { dg-message {decltype \(A<T>::foo} }
+};
+A d; // { dg-error "deduction failed" }
+// { dg-error "no match" "" { target *-*-* } .-1 }