diff options
author | lmillward <lmillward@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-01-06 01:06:04 +0000 |
---|---|---|
committer | lmillward <lmillward@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-01-06 01:06:04 +0000 |
commit | 1965e597d485a9dae4f903f4ec56803a37dc659d (patch) | |
tree | 31f90be90aa6483c30ebb38a4dce943b957bb1c8 /gcc/testsuite/g++.dg | |
parent | a9a6a36ac96b3ba62f6e9b600e3f5ae6a792b930 (diff) | |
download | gcc-1965e597d485a9dae4f903f4ec56803a37dc659d.tar.gz |
PR c++/19439
* class.c (add_method): Don't wait until template
instantiation time to complain about duplicate methods.
* g++.dg/template/duplicate1.C: New test
* g++.dg/template/memfriend6.C: Adjust error markers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120520 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r-- | gcc/testsuite/g++.dg/template/duplicate1.C | 7 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/memfriend6.C | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/testsuite/g++.dg/template/duplicate1.C b/gcc/testsuite/g++.dg/template/duplicate1.C new file mode 100644 index 00000000000..c9cdab4b932 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/duplicate1.C @@ -0,0 +1,7 @@ +//PR c++/19439 + +template<int> struct A +{ + ~A() {} // { dg-error "with" } + ~A() {} // { dg-error "cannot be overloaded" } +}; diff --git a/gcc/testsuite/g++.dg/template/memfriend6.C b/gcc/testsuite/g++.dg/template/memfriend6.C index 21d799605ec..5f82339af54 100644 --- a/gcc/testsuite/g++.dg/template/memfriend6.C +++ b/gcc/testsuite/g++.dg/template/memfriend6.C @@ -8,8 +8,8 @@ template <class T> struct A { template <class U> void f(U); // { dg-error "candidate" } - void g(); // { dg-error "candidate" } - void h(); // { dg-error "candidate" } + void g(); // { dg-error "candidate|with" } + void h(); // { dg-error "candidate|with" } void i(int); // { dg-error "candidate" } }; @@ -17,7 +17,7 @@ class C { int ii; template <class U> friend void A<U>::f(U); // { dg-error "not match" } template <class U> template <class V> - friend void A<U>::g(); // { dg-error "not match" } - template <class U> friend int A<U>::h(); // { dg-error "not match" } + friend void A<U>::g(); // { dg-error "not match|cannot be overloaded" } + template <class U> friend int A<U>::h(); // { dg-error "not match|cannot be overloaded" } template <class U> friend void A<U>::i(char); // { dg-error "not match" } }; |