blob: 80bbda785d0551282a054426779a56a10dcd5539 [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Douglas Gregorc15cb382009-02-09 23:23:08 +00002template<typename T,
3 int I,
4 template<typename> class TT>
Douglas Gregor62cb18d2009-02-11 18:16:40 +00005 class A; // expected-note 2 {{template is declared here}}
Douglas Gregorc15cb382009-02-09 23:23:08 +00006
7template<typename> class X;
8
9A<int, 0, X> * a1;
10
Douglas Gregor39a8de12009-02-25 19:37:18 +000011A<float, 1, X, double> *a2; // expected-error{{too many template arguments for class template 'A'}}
12A<float, 1> *a3; // expected-error{{too few template arguments for class template 'A'}}
John McCall9ba61662010-02-26 08:45:28 +000013
14namespace test0 {
15 template <class t> class foo {};
16 template <class t> class bar {
17 bar(::test0::foo<tee> *ptr) {} // FIXME(redundant): expected-error 2 {{use of undeclared identifier 'tee'}}
18 };
19}