diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template/qualified-id1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/template/qualified-id1.C | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/qualified-id1.C b/gcc/testsuite/g++.dg/template/qualified-id1.C new file mode 100644 index 000000000..602be5bf1 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/qualified-id1.C @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 4 Sep 2003 <nathan@codesourcery.com> +// Origin Volker Reichelt reichelt@igpm.rwth-aachen.de + +// PR 11922 + +struct A +{ + template <bool> struct B; + struct C; +}; + +template <> struct A::B<false> {}; + +template <typename T> void foo() +{ + T::C (); // { dg-error "parsed as a non-type|if a type is meant" } + T::template B<false>(); // { dg-error "parsed as a non-type" "non-type" } + // { dg-message "if a type" "if a type" { target *-*-* } 20 } +} + +void bar() +{ + foo<A>(); // { dg-message "instantiated" } +} |