diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 11:06:01 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 11:06:01 +0000 |
commit | 486754660bb926339aefcf012a3f848592babb8b (patch) | |
tree | ecdbc446c9876f4f120f701c243373cd3cb43db3 /test/Templight | |
parent | 55e6d896ad333f07bb3b1ba487df214fc268a4ab (diff) |
Notes
Diffstat (limited to 'test/Templight')
-rw-r--r-- | test/Templight/templight-deduced-func.cpp | 44 | ||||
-rw-r--r-- | test/Templight/templight-default-arg-inst.cpp | 82 | ||||
-rw-r--r-- | test/Templight/templight-default-func-arg.cpp | 73 | ||||
-rw-r--r-- | test/Templight/templight-default-template-arg.cpp | 69 | ||||
-rw-r--r-- | test/Templight/templight-exception-spec-func.cpp | 73 | ||||
-rw-r--r-- | test/Templight/templight-explicit-template-arg.cpp | 59 | ||||
-rw-r--r-- | test/Templight/templight-memoization.cpp | 42 | ||||
-rw-r--r-- | test/Templight/templight-nested-memoization.cpp | 174 | ||||
-rw-r--r-- | test/Templight/templight-nested-template-instantiation.cpp | 84 | ||||
-rw-r--r-- | test/Templight/templight-one-instantiation.cpp | 18 | ||||
-rw-r--r-- | test/Templight/templight-prior-template-arg.cpp | 72 |
11 files changed, 790 insertions, 0 deletions
diff --git a/test/Templight/templight-deduced-func.cpp b/test/Templight/templight-deduced-func.cpp new file mode 100644 index 0000000000000..779fb5f45228d --- /dev/null +++ b/test/Templight/templight-deduced-func.cpp @@ -0,0 +1,44 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s + +template <class T> +int foo(T){return 0;} + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+foo$}} +// CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-deduced-func.cpp:4:5'}} +// CHECK: {{^poi:[ ]+'.*templight-deduced-func.cpp:44:12'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+foo$}} +// CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-deduced-func.cpp:4:5'}} +// CHECK: {{^poi:[ ]+'.*templight-deduced-func.cpp:44:12'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-deduced-func.cpp:4:5'}} +// CHECK: {{^poi:[ ]+'.*templight-deduced-func.cpp:44:12'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-deduced-func.cpp:4:5'}} +// CHECK: {{^poi:[ ]+'.*templight-deduced-func.cpp:44:12'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-deduced-func.cpp:4:5'}} +// CHECK: {{^poi:[ ]+'.*templight-deduced-func.cpp:44:12'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-deduced-func.cpp:4:5'}} +// CHECK: {{^poi:[ ]+'.*templight-deduced-func.cpp:44:12'$}} +int gvar = foo(0); diff --git a/test/Templight/templight-default-arg-inst.cpp b/test/Templight/templight-default-arg-inst.cpp new file mode 100644 index 0000000000000..fe2bab3a837e6 --- /dev/null +++ b/test/Templight/templight-default-arg-inst.cpp @@ -0,0 +1,82 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s +template<class T, class U = T> +class A {}; + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A::U'$}} +// CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:2:25'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:1'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A::U'$}} +// CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:2:25'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:1'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A::U'$}} +// CHECK: {{^kind:[ ]+DefaultTemplateArgumentChecking$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:2:25'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:6'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A::U'$}} +// CHECK: {{^kind:[ ]+DefaultTemplateArgumentChecking$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:2:25'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:6'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int, int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:8'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int, int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:8'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int, int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:8'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int, int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:8'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int, int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:8'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int, int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:8'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int, int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:8'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int, int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-arg-inst.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-arg-inst.cpp:82:8'$}} +A<int> a; diff --git a/test/Templight/templight-default-func-arg.cpp b/test/Templight/templight-default-func-arg.cpp new file mode 100644 index 0000000000000..19e6039379724 --- /dev/null +++ b/test/Templight/templight-default-func-arg.cpp @@ -0,0 +1,73 @@ +// RUN: %clang_cc1 -std=c++14 -templight-dump %s 2>&1 | FileCheck %s +template <class T> +void foo(T b = 0) {}; + +int main() +{ + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+foo$}} +// CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+foo$}} +// CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+foo$}} +// CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+foo$}} +// CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+b$}} +// CHECK: {{^kind:[ ]+DefaultFunctionArgumentInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:12'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+b$}} +// CHECK: {{^kind:[ ]+DefaultFunctionArgumentInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:12'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-func-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-default-func-arg.cpp:72:3'$}} + foo<int>(); +} diff --git a/test/Templight/templight-default-template-arg.cpp b/test/Templight/templight-default-template-arg.cpp new file mode 100644 index 0000000000000..5d2ccb4e40881 --- /dev/null +++ b/test/Templight/templight-default-template-arg.cpp @@ -0,0 +1,69 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s +template <class T = int> +class A {}; + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A::T'$}} +// CHECK: {{^kind:[ ]+DefaultTemplateArgumentChecking$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:2:17'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A::T'$}} +// CHECK: {{^kind:[ ]+DefaultTemplateArgumentChecking$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:2:17'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:5'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:5'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:5'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:5'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:5'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:5'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:5'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'A<int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-default-template-arg.cpp:3:7'}} +// CHECK: {{^poi:[ ]+'.*templight-default-template-arg.cpp:69:5'$}} +A<> a; diff --git a/test/Templight/templight-exception-spec-func.cpp b/test/Templight/templight-exception-spec-func.cpp new file mode 100644 index 0000000000000..39a66d0ecdd2b --- /dev/null +++ b/test/Templight/templight-exception-spec-func.cpp @@ -0,0 +1,73 @@ +// RUN: %clang_cc1 -templight-dump -std=c++14 %s 2>&1 | FileCheck %s +template <bool B> +void f() noexcept(B) {} + +int main() +{ + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+f$}} +// CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+f$}} +// CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+f$}} +// CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+f$}} +// CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<false>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<false>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<false>'$}} +// CHECK: {{^kind:[ ]+ExceptionSpecInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<false>'$}} +// CHECK: {{^kind:[ ]+ExceptionSpecInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<false>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<false>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-exception-spec-func.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-exception-spec-func.cpp:72:3'$}} + f<false>(); +} diff --git a/test/Templight/templight-explicit-template-arg.cpp b/test/Templight/templight-explicit-template-arg.cpp new file mode 100644 index 0000000000000..678cba28cdc0f --- /dev/null +++ b/test/Templight/templight-explicit-template-arg.cpp @@ -0,0 +1,59 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s +template <class T> +void f(){} + +int main() +{ +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+f$}} +// CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-explicit-template-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-explicit-template-arg.cpp:58:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+f$}} +// CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-explicit-template-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-explicit-template-arg.cpp:58:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+f$}} +// CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-explicit-template-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-explicit-template-arg.cpp:58:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+f$}} +// CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-explicit-template-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-explicit-template-arg.cpp:58:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-explicit-template-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-explicit-template-arg.cpp:58:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-explicit-template-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-explicit-template-arg.cpp:58:3'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-explicit-template-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-explicit-template-arg.cpp:58:3'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'f<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-explicit-template-arg.cpp:3:6'}} +// CHECK: {{^poi:[ ]+'.*templight-explicit-template-arg.cpp:58:3'$}} + f<int>(); +} diff --git a/test/Templight/templight-memoization.cpp b/test/Templight/templight-memoization.cpp new file mode 100644 index 0000000000000..ddf2447834fd3 --- /dev/null +++ b/test/Templight/templight-memoization.cpp @@ -0,0 +1,42 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s + +template <class T> +struct foo {}; + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-memoization.cpp:18:10'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-memoization.cpp:18:10'$}} +foo<int> x; + +// CHECK-LABEL: {{^---$}} +// CHECK-LABEL: {{^---$}} +// CHECK-LABEL: {{^---$}} +// CHECK-LABEL: {{^---$}} +// CHECK-LABEL: {{^---$}} +// CHECK-LABEL: {{^---$}} +// CHECK-LABEL: {{^---$}} +// CHECK-LABEL: {{^---$}} +// CHECK-LABEL: {{^---$}} + +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-memoization.cpp:41:10'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-memoization.cpp:41:10'$}} +foo<int> y; + diff --git a/test/Templight/templight-nested-memoization.cpp b/test/Templight/templight-nested-memoization.cpp new file mode 100644 index 0000000000000..37e8483f5381a --- /dev/null +++ b/test/Templight/templight-nested-memoization.cpp @@ -0,0 +1,174 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s + +template <int N> +struct fib +{ + static const int value = fib<N-1>::value + fib<N-2>::value; +}; + +template <> +struct fib<0> +{ + static const int value = 1; +}; + +template <> +struct fib<1> +{ + static const int value = 1; +}; + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<4>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:173:8'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<4>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:173:8'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<4>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:173:8'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<3>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<3>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<3>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<2>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<2>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<2>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<1>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:16:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<1>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:16:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<0>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:10:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<0>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:10:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<2>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<2>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<2>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<1>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:16:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<1>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:16:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<3>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<3>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<3>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<2>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'fib<2>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}} +// CHECK-LABEL: {{^---$}} +// +// CHECK: {{^name:[ ]+'fib<4>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:173:8'$}} +fib<4> x; + diff --git a/test/Templight/templight-nested-template-instantiation.cpp b/test/Templight/templight-nested-template-instantiation.cpp new file mode 100644 index 0000000000000..a064c16d59181 --- /dev/null +++ b/test/Templight/templight-nested-template-instantiation.cpp @@ -0,0 +1,84 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s + +template <int N> +struct foo : foo<N - 1> {}; + +template <> +struct foo<0> {}; + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<2>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<2>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<2>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<1>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<1>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<1>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<0>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:7:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<0>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:7:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<1>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<1>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<1>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:4:14'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<2>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-nested-template-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-nested-template-instantiation.cpp:84:8'$}} +foo<2> x; diff --git a/test/Templight/templight-one-instantiation.cpp b/test/Templight/templight-one-instantiation.cpp new file mode 100644 index 0000000000000..e865ef3a4ba94 --- /dev/null +++ b/test/Templight/templight-one-instantiation.cpp @@ -0,0 +1,18 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s + +template <class T> +struct foo {}; + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-one-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-one-instantiation.cpp:18:10'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'foo<int>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-one-instantiation.cpp:4:8'}} +// CHECK: {{^poi:[ ]+'.*templight-one-instantiation.cpp:18:10'$}} +foo<int> x; diff --git a/test/Templight/templight-prior-template-arg.cpp b/test/Templight/templight-prior-template-arg.cpp new file mode 100644 index 0000000000000..e9b1dd47bb603 --- /dev/null +++ b/test/Templight/templight-prior-template-arg.cpp @@ -0,0 +1,72 @@ +// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s +template<class T> +class A {}; + +template <template <class Inner> class Outer> +class B {}; + +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B::Outer'$}} +// CHECK: {{^kind:[ ]+PriorTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:5:40'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:1'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B::Outer'$}} +// CHECK: {{^kind:[ ]+PriorTemplateArgumentSubstitution$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:5:40'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:1'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B<A>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B<A>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B<A>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B<A>'$}} +// CHECK: {{^kind:[ ]+TemplateInstantiation$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B<A>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B<A>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}} +// +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B<A>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+Begin$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}} +// CHECK-LABEL: {{^---$}} +// CHECK: {{^name:[ ]+'B<A>'$}} +// CHECK: {{^kind:[ ]+Memoization$}} +// CHECK: {{^event:[ ]+End$}} +// CHECK: {{^orig:[ ]+'.*templight-prior-template-arg.cpp:6:7'}} +// CHECK: {{^poi:[ ]+'.*templight-prior-template-arg.cpp:72:6'$}} +B<A> b; |