summaryrefslogtreecommitdiff
path: root/clang/test/CodeGenCXX/debug-info-template.cpp
blob: 9d52159bed84763d4b80b51af9604594dc213353 (about) (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
44
45
46
// RUN: %clang -emit-llvm -g -S %s -o - | FileCheck %s

//CHECK: TC<int>
//CHECK: DW_TAG_template_type_parameter

template<typename T>
class TC {
public:
  TC(const TC &) {}
  TC() {}
};

TC<int> tci;

//CHECK: TU<2>
//CHECK: DW_TAG_template_value_parameter
template<unsigned >
class TU {
  int b;
};

TU<2> u2;

// PR9600
template<typename T> class vector {};
class Foo;
typedef vector<Foo*> FooVector[3];
struct Test {
  virtual void foo(FooVector *);
};
static Test test;

// PR9608
template <int i> struct TheTemplate {
  struct Empty2 {}; 
  typedef const Empty2 DependentType[i]; 
  TheTemplate() {} 
}; 

class TheTemplateTest : public TheTemplate<42> { 
  TheTemplateTest(); 
  void method(const TheTemplate<42>::DependentType *) {} 
}; 

TheTemplateTest::TheTemplateTest() : TheTemplate<42>() {}