summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2013-03-21 03:25:16 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2013-03-21 03:25:16 +0000
commitf8f092de83a675dc29f7f02f1337723810b37712 (patch)
tree14e8bdf7468a181a82ae9a0ab9568863c0335a17 /gcc/testsuite
parent4e38a95d29a52c530fe7ff3a46adc0615b894bae (diff)
downloadgcc-f8f092de83a675dc29f7f02f1337723810b37712.tar.gz
PR c++/17232
PR c++/56642 * pt.c (tsubst_decl): Check return value of register_specialization. * typeck2.c (abstract_virtuals_error_sfinae): Re-apply complete_type change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196849 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/g++.dg/template/abstract-dr337.C4
-rw-r--r--gcc/testsuite/g++.dg/template/friend54.C18
2 files changed, 20 insertions, 2 deletions
diff --git a/gcc/testsuite/g++.dg/template/abstract-dr337.C b/gcc/testsuite/g++.dg/template/abstract-dr337.C
index 4f66c1c1188..6905262d6cb 100644
--- a/gcc/testsuite/g++.dg/template/abstract-dr337.C
+++ b/gcc/testsuite/g++.dg/template/abstract-dr337.C
@@ -6,8 +6,8 @@ class A {
};
template<typename T>
-void g(T (*a)[1]) {} // { dg-error "abstract" "" { xfail *-*-* } }
+void g(T (*a)[1]) {} // { dg-error "abstract" "" }
int main() {
- g<A<int> >(0); // { dg-error "no matching function" "" { xfail *-*-* } }
+ g<A<int> >(0); // { dg-error "no matching function" }
}
diff --git a/gcc/testsuite/g++.dg/template/friend54.C b/gcc/testsuite/g++.dg/template/friend54.C
new file mode 100644
index 00000000000..ead7a72fcc9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend54.C
@@ -0,0 +1,18 @@
+// PR c++/56642
+
+template <class T> struct A;
+
+template <class T>
+A<T> f(T*) { return A<T>(); }
+
+template <class T>
+struct A
+{
+ friend A f<T>(T*);
+};
+
+int main()
+{
+ int *p = 0;
+ f(p);
+}