diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template/error2.C')
-rw-r--r-- | gcc/testsuite/g++.dg/template/error2.C | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/error2.C b/gcc/testsuite/g++.dg/template/error2.C new file mode 100644 index 000000000..5bd9b870e --- /dev/null +++ b/gcc/testsuite/g++.dg/template/error2.C @@ -0,0 +1,30 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 14 Aug 2003 <nathan@codesourcery.com> + +// instantiated from did not indicate the nested class + +template<class T> struct X +{ + T m; // { dg-error "as type 'void'" "void" } + // { dg-error "incomplete type" "incomplate" { target *-*-* } 10 } + // { dg-error "invalid" "invalid" { target *-*-* } 10 } +}; + +template<class T > +struct Derived +{ + class Nested : public X<T> // { dg-message "instantiated" "" } + { + }; + + Nested m; // { dg-message "instantiated" "" } + + void Foo (); +}; + +void Foo (Derived<void> &x) +{ + x.Foo (); // { dg-message "instantiated" "" } +} |