From 55698a19bb5efff72e4fa777e542b44e1a4a0c86 Mon Sep 17 00:00:00 2001 From: dberlin Date: Mon, 24 Apr 2006 21:54:38 +0000 Subject: Merge from mainline git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/dataflow-branch@113230 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/g++.dg/template/crash35.C | 2 +- gcc/testsuite/g++.dg/template/crash45.C | 13 +++++++++++++ gcc/testsuite/g++.dg/template/crash46.C | 5 +++++ gcc/testsuite/g++.dg/template/friend41.C | 11 +++++++++++ gcc/testsuite/g++.dg/template/new3.C | 17 +++++++++++++++++ gcc/testsuite/g++.dg/template/pure1.C | 6 ++++++ 6 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/template/crash45.C create mode 100644 gcc/testsuite/g++.dg/template/crash46.C create mode 100644 gcc/testsuite/g++.dg/template/friend41.C create mode 100644 gcc/testsuite/g++.dg/template/new3.C create mode 100644 gcc/testsuite/g++.dg/template/pure1.C (limited to 'gcc/testsuite/g++.dg/template') diff --git a/gcc/testsuite/g++.dg/template/crash35.C b/gcc/testsuite/g++.dg/template/crash35.C index dd8aa2f0906..348d91d0caf 100644 --- a/gcc/testsuite/g++.dg/template/crash35.C +++ b/gcc/testsuite/g++.dg/template/crash35.C @@ -5,5 +5,5 @@ template struct C; // { dg-error "declaration" } template void C::f() // { dg-error "invalid|template" } { - const foo bar; // { dg-error "name a type" } + const foo bar; } diff --git a/gcc/testsuite/g++.dg/template/crash45.C b/gcc/testsuite/g++.dg/template/crash45.C new file mode 100644 index 00000000000..f138e3d6169 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash45.C @@ -0,0 +1,13 @@ +// PR c++/26365 + +struct A {}; + +namespace N +{ + template void foo(); +} + +void bar(A *p) +{ + p->N::foo<0>; // { dg-error "not a member" } +} diff --git a/gcc/testsuite/g++.dg/template/crash46.C b/gcc/testsuite/g++.dg/template/crash46.C new file mode 100644 index 00000000000..6fbda7c0767 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash46.C @@ -0,0 +1,5 @@ +// PR c++/27102 + +template +void T::foo() {} // { dg-error "invalid" } + diff --git a/gcc/testsuite/g++.dg/template/friend41.C b/gcc/testsuite/g++.dg/template/friend41.C new file mode 100644 index 00000000000..6d686019d9a --- /dev/null +++ b/gcc/testsuite/g++.dg/template/friend41.C @@ -0,0 +1,11 @@ +// PR c++/26912 + +struct Foo { + template int func() const; +}; + +class Bar { + friend int Foo::func() const; +}; + + diff --git a/gcc/testsuite/g++.dg/template/new3.C b/gcc/testsuite/g++.dg/template/new3.C new file mode 100644 index 00000000000..c6c108903e1 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/new3.C @@ -0,0 +1,17 @@ +extern void *operator new(__SIZE_TYPE__); // { dg-error "candidate" } + +template +struct C +{ + void f() { + int* node; + new (&node) int(0); // { dg-error "new" } + } +}; + +void* operator new(__SIZE_TYPE__, void* __p); + +void g() { + C c; + c.f(); +} diff --git a/gcc/testsuite/g++.dg/template/pure1.C b/gcc/testsuite/g++.dg/template/pure1.C new file mode 100644 index 00000000000..ca9b94e00b7 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/pure1.C @@ -0,0 +1,6 @@ +// PR c++/26122 + +struct A +{ + template void foo() = 1; // { dg-error "pure" } +}; -- cgit v1.2.3