| // { dg-do assemble } |
| // |
| // Copyright (C) 2000 Free Software Foundation, Inc. |
| // Contributed by Nathan Sidwell 19 Jan 2001 <nathan@codesourcery.com> |
| |
| // Bug 1656. We failed to make sure that a template-id was built |
| // from a primary template. |
| |
| template <int dim> struct Outer |
| { |
| struct Inner {}; |
| |
| void f() |
| { |
| Inner<dim> i; // { dg-error "" } non-template |
| Inner<> j; // { dg-error "" } non-template |
| } |
| }; |
| struct O {}; |
| void foo () |
| { |
| Outer<1> x; |
| x.f (); |
| Outer<1>::Inner<2> z; // { dg-error "" } non-template |
| O<1> w; // { dg-error "" } non-template |
| } |
| |
| template <typename T, template <typename C> class TPL> |
| struct X |
| { |
| TPL<T> t; |
| T<int> s; // { dg-error "" } non-template |
| }; |
| |
| template <typename T> struct Y |
| { |
| }; |
| |
| void bar () |
| { |
| X<int, Y> a; |
| X<int, O> b; // { dg-error "" } non-template |
| } |