summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/spec39.C
blob: 8b4e76745f1cf6e553466a5f9d5061d539564beb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// { 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
}