summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg
diff options
context:
space:
mode:
authorlmillward <lmillward@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-06 01:06:04 +0000
committerlmillward <lmillward@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-06 01:06:04 +0000
commit1965e597d485a9dae4f903f4ec56803a37dc659d (patch)
tree31f90be90aa6483c30ebb38a4dce943b957bb1c8 /gcc/testsuite/g++.dg
parenta9a6a36ac96b3ba62f6e9b600e3f5ae6a792b930 (diff)
downloadgcc-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.C7
-rw-r--r--gcc/testsuite/g++.dg/template/memfriend6.C8
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" }
};