forked from OSchip/llvm-project
47 lines
807 B
C++
47 lines
807 B
C++
// 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>() {}
|
|
|