aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/ttp3.C
blob: fe9bd9eb3821cc0cbcc32977a95f347b0c8d8fd1 (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
// { dg-do compile }

// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 29 Dec 2001 <nathan@codesourcery.com>

// PR 5213. We failed to spot that class List was a template, rather
// than a non-template or specialization


template <class T> class vector { };

class OUTER {
  public:
  template <class T>
  class List { };
  
  vector<class List> data; // { dg-error "argument is required|ISO C" "" }
};

template <class T>
class List { };			// { dg-bogus "previous declaration" "" { xfail *-*-* } }

// This next line should just do a lookup of 'class List', and then
// get a type/value mismatch. Instead we try and push 'class List'
// into the global namespace and get a redeclaration error.
vector<class List > data;	// { dg-bogus "`struct List' redeclared|type/value mismatch" "" { xfail *-*-* } }