blob: 9d52159bed84763d4b80b51af9604594dc213353 [file] [log] [blame]
Devang Patelfa275df2011-02-02 21:38:49 +00001// RUN: %clang -emit-llvm -g -S %s -o - | FileCheck %s
2
3//CHECK: TC<int>
4//CHECK: DW_TAG_template_type_parameter
5
Devang Patel700a1cb2010-07-20 20:24:18 +00006template<typename T>
7class TC {
8public:
9 TC(const TC &) {}
10 TC() {}
11};
12
13TC<int> tci;
Devang Patel0ce34c62011-02-02 22:36:18 +000014
15//CHECK: TU<2>
16//CHECK: DW_TAG_template_value_parameter
17template<unsigned >
18class TU {
19 int b;
20};
21
22TU<2> u2;
Devang Patelae503df2011-04-01 19:02:33 +000023
24// PR9600
25template<typename T> class vector {};
26class Foo;
27typedef vector<Foo*> FooVector[3];
28struct Test {
29 virtual void foo(FooVector *);
30};
31static Test test;
32
Devang Patelba690a42011-04-04 23:18:38 +000033// PR9608
34template <int i> struct TheTemplate {
35 struct Empty2 {};
36 typedef const Empty2 DependentType[i];
37 TheTemplate() {}
38};
39
40class TheTemplateTest : public TheTemplate<42> {
41 TheTemplateTest();
42 void method(const TheTemplate<42>::DependentType *) {}
43};
44
45TheTemplateTest::TheTemplateTest() : TheTemplate<42>() {}
46