// RUN: %clang_cc1 -templight-dump -Wno-unused-value %s 2>&1 | FileCheck %s void a() { [] {}; } // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'\(lambda at .*templight-empty-entries-fix.cpp:4:3\)'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:4:3'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:4:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'\(lambda at .*templight-empty-entries-fix.cpp:4:3\)'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:4:3'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:4:3'$}} template void a() { a(); } // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+a$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:20:31'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template non-type parameter 0 of a$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:15'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template non-type parameter 0 of a$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:15'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+a$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:20:31'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'a<0>'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:20:31'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'a<0>'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:20:31'$}} template struct b { typedef int c; }; template ::c> void a() { a(); } // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+a$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:60:57'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:63'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:60:16'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:57'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:60:16'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:57'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template type parameter 1 of a$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:60:32'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:57'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'b<1>'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:59:23'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:43'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'b<1>'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:59:23'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:43'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'b<1>'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:59:23'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:43'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'b<1>'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:59:23'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:43'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'b<1>'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:59:23'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:43'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'b<1>'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:59:23'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:43'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template type parameter 1 of a$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:60:32'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:57'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+a$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:60:57'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:63'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'a'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:60:57'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:63'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'a'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:60:57'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:63'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+a$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:63'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template non-type parameter 0 of a$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:15'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template non-type parameter 0 of a$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:15'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+a$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:20:25'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:60:63'$}} template void d(int = 0) { d(); } // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:29'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:171:42'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template non-type parameter 0 of d$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:16'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:171:29'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template non-type parameter 0 of d$}} // CHECK: {{^kind:[ ]+DefaultTemplateArgumentInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:16'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:171:29'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:29'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:171:42'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'d'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:29'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:171:42'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'d'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:29'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:171:42'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'unnamed function parameter 0 of d'$}} // CHECK: {{^kind:[ ]+DefaultFunctionArgumentInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:35'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:171:42'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'unnamed function parameter 0 of d'$}} // CHECK: {{^kind:[ ]+DefaultFunctionArgumentInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:35'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:171:42'$}} void e() { struct { } f; } // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'\(unnamed struct at .*templight-empty-entries-fix.cpp:223:3\)'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:223:3'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:224:5'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'\(unnamed struct at .*templight-empty-entries-fix.cpp:223:3\)'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:223:3'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:224:5'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'\(unnamed struct at .*templight-empty-entries-fix.cpp:223:3\)'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:223:3'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:224:5'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'\(unnamed struct at .*templight-empty-entries-fix.cpp:223:3\)'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:223:3'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:224:5'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'\(unnamed struct at .*templight-empty-entries-fix.cpp:223:3\)'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:223:3'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:223:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'\(unnamed struct at .*templight-empty-entries-fix.cpp:223:3\)'$}} // CHECK: {{^kind:[ ]+Memoization$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:223:3'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:223:3'$}} template class> void d(); template struct C; void foo() { d(); } // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:266:6'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:271:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template template parameter 0 of d$}} // CHECK: {{^kind:[ ]+PriorTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:265:35'$}} // CHECK: {{^poi:[ ]+''$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+unnamed template template parameter 0 of d$}} // CHECK: {{^kind:[ ]+PriorTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:265:35'$}} // CHECK: {{^poi:[ ]+''$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:266:6'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:271:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:266:6'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:271:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+DeducedTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:266:6'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:271:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'d'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:266:6'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:271:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+'d'$}} // CHECK: {{^kind:[ ]+TemplateInstantiation$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:266:6'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:271:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+Begin$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:29'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:271:3'$}} // CHECK-LABEL: {{^---$}} // CHECK: {{^name:[ ]+d$}} // CHECK: {{^kind:[ ]+ExplicitTemplateArgumentSubstitution$}} // CHECK: {{^event:[ ]+End$}} // CHECK: {{^orig:[ ]+'.*templight-empty-entries-fix.cpp:171:29'$}} // CHECK: {{^poi:[ ]+'.*templight-empty-entries-fix.cpp:271:3'$}}