diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template')
-rw-r--r-- | gcc/testsuite/g++.dg/template/crash34.C | 12 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/dtor3.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/enum5.C | 16 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/explicit6.C | 8 |
4 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/crash34.C b/gcc/testsuite/g++.dg/template/crash34.C new file mode 100644 index 00000000000..9cca62f0539 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash34.C @@ -0,0 +1,12 @@ +// { dg-do compile } + +// PR c++/20028 + +// We used to crash when referencing TYPE_SIZE_UNIT of the messed-up +// type used for x, because it was not initialized. + +class Foo; + +template <typename T> class Foo { }; // { dg-error "not a template type" } + +Foo<int> x; // { dg-error "not a template" } diff --git a/gcc/testsuite/g++.dg/template/dtor3.C b/gcc/testsuite/g++.dg/template/dtor3.C new file mode 100644 index 00000000000..7f4099861fb --- /dev/null +++ b/gcc/testsuite/g++.dg/template/dtor3.C @@ -0,0 +1,4 @@ +// PR c++/19762 + +template<int> struct A { ~A(){} }; // { dg-error "" } +template A<>::~A(); // { dg-error "" } diff --git a/gcc/testsuite/g++.dg/template/enum5.C b/gcc/testsuite/g++.dg/template/enum5.C new file mode 100644 index 00000000000..b7a49f45d0f --- /dev/null +++ b/gcc/testsuite/g++.dg/template/enum5.C @@ -0,0 +1,16 @@ +// { dg-do compile } + +// Origin: robertk@mathematik.uni-freiburg.de +// Wolfgang Bangerth <bangerth@ticam.utexas.edu> + +// PR c++/14479: Template header check for enum + +template <int dim> +struct X { + enum { dimension = dim }; + template<int d> void bar (); +}; + +template <> +template <> +void X<0>::bar<0> () {} diff --git a/gcc/testsuite/g++.dg/template/explicit6.C b/gcc/testsuite/g++.dg/template/explicit6.C new file mode 100644 index 00000000000..f740269bb74 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/explicit6.C @@ -0,0 +1,8 @@ +// Copyright (C) 2005 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 14 Feb 2005 <nathan@codesourcery.com> + +// Origin: Volker Reichelt <reichelt@gcc.gnu.org> +// Bug 19895: ICE on invalid + +struct A; +template A<>::A(); // { dg-error "(not a template)|(explicit qualification)" "" } |