// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s template struct fib { static const int value = fib::value + fib::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;