diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-03-21 03:25:16 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-03-21 03:25:16 +0000 |
commit | f8f092de83a675dc29f7f02f1337723810b37712 (patch) | |
tree | 14e8bdf7468a181a82ae9a0ab9568863c0335a17 /gcc/testsuite | |
parent | 4e38a95d29a52c530fe7ff3a46adc0615b894bae (diff) | |
download | gcc-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.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/friend54.C | 18 |
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); +} |