1 // { dg-do compile } 2 3 // Copyright (C) 2003 Free Software Foundation, Inc. 4 // Contributed by Nathan Sidwell 4 Sep 2003 <nathan@codesourcery.com> 5 // Origin Volker Reichelt reichelt@igpm.rwth-aachen.de 6 7 // PR 11922 8 9 struct A 10 { 11 template <bool> struct B; 12 struct C; 13 }; 14 15 template <> struct A::B<false> {}; 16 17 template <typename T> void foo() 18 { 19 T::C (); // { dg-error "parsed as a non-type|if a type is meant" } 20 T::template B<false>(); // { dg-error "parsed as a non-type" "non-type" } 21 // { dg-message "if a type" "if a type" { target *-*-* } .-1 } 22 } 23 24 void bar() 25 { 26 foo<A>(); // { dg-message "required" } 27 } 28