175 lines · cpp
1// RUN: %clang_cc1 -templight-dump %s 2>&1 | FileCheck %s2 3template <int N>4struct fib5{6 static const int value = fib<N-1>::value + fib<N-2>::value;7};8 9template <>10struct fib<0>11{12 static const int value = 1;13};14 15template <>16struct fib<1>17{18 static const int value = 1;19};20 21// CHECK-LABEL: {{^---$}}22// CHECK: {{^name:[ ]+'fib<4>'$}}23// CHECK: {{^kind:[ ]+TemplateInstantiation$}}24// CHECK: {{^event:[ ]+Begin$}}25// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}26// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:173:8'$}}27// CHECK-LABEL: {{^---$}}28// CHECK: {{^name:[ ]+'fib<4>'$}}29// CHECK: {{^kind:[ ]+TemplateInstantiation$}}30// CHECK: {{^event:[ ]+End$}}31// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}32// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:173:8'$}}33// CHECK-LABEL: {{^---$}}34// CHECK: {{^name:[ ]+'fib<4>'$}}35// CHECK: {{^kind:[ ]+TemplateInstantiation$}}36// CHECK: {{^event:[ ]+Begin$}}37// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}38// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:173:8'$}}39//40// CHECK-LABEL: {{^---$}}41// CHECK: {{^name:[ ]+'fib<3>'$}}42// CHECK: {{^kind:[ ]+TemplateInstantiation$}}43// CHECK: {{^event:[ ]+Begin$}}44// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}45// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}46// CHECK-LABEL: {{^---$}}47// CHECK: {{^name:[ ]+'fib<3>'$}}48// CHECK: {{^kind:[ ]+TemplateInstantiation$}}49// CHECK: {{^event:[ ]+End$}}50// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}51// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}52// CHECK-LABEL: {{^---$}}53// CHECK: {{^name:[ ]+'fib<3>'$}}54// CHECK: {{^kind:[ ]+TemplateInstantiation$}}55// CHECK: {{^event:[ ]+Begin$}}56// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}57// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}58//59// CHECK-LABEL: {{^---$}}60// CHECK: {{^name:[ ]+'fib<2>'$}}61// CHECK: {{^kind:[ ]+TemplateInstantiation$}}62// CHECK: {{^event:[ ]+Begin$}}63// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}64// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}65// CHECK-LABEL: {{^---$}}66// CHECK: {{^name:[ ]+'fib<2>'$}}67// CHECK: {{^kind:[ ]+TemplateInstantiation$}}68// CHECK: {{^event:[ ]+End$}}69// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}70// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}71// CHECK-LABEL: {{^---$}}72// CHECK: {{^name:[ ]+'fib<2>'$}}73// CHECK: {{^kind:[ ]+TemplateInstantiation$}}74// CHECK: {{^event:[ ]+Begin$}}75// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}76// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}77 78// CHECK-LABEL: {{^---$}}79// CHECK: {{^name:[ ]+'fib<1>'$}}80// CHECK: {{^kind:[ ]+Memoization$}}81// CHECK: {{^event:[ ]+Begin$}}82// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:16:8'}}83// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}84// CHECK-LABEL: {{^---$}}85// CHECK: {{^name:[ ]+'fib<1>'$}}86// CHECK: {{^kind:[ ]+Memoization$}}87// CHECK: {{^event:[ ]+End$}}88// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:16:8'}}89// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}90// CHECK-LABEL: {{^---$}}91// CHECK: {{^name:[ ]+'fib<0>'$}}92// CHECK: {{^kind:[ ]+Memoization$}}93// CHECK: {{^event:[ ]+Begin$}}94// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:10:8'}}95// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}}96// CHECK-LABEL: {{^---$}}97// CHECK: {{^name:[ ]+'fib<0>'$}}98// CHECK: {{^kind:[ ]+Memoization$}}99// CHECK: {{^event:[ ]+End$}}100// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:10:8'}}101// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}}102//103// CHECK-LABEL: {{^---$}}104// CHECK: {{^name:[ ]+'fib<2>'$}}105// CHECK: {{^kind:[ ]+TemplateInstantiation$}}106// CHECK: {{^event:[ ]+End$}}107// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}108// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}109// CHECK-LABEL: {{^---$}}110// CHECK: {{^name:[ ]+'fib<2>'$}}111// CHECK: {{^kind:[ ]+Memoization$}}112// CHECK: {{^event:[ ]+Begin$}}113// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}114// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}115// CHECK-LABEL: {{^---$}}116// CHECK: {{^name:[ ]+'fib<2>'$}}117// CHECK: {{^kind:[ ]+Memoization$}}118// CHECK: {{^event:[ ]+End$}}119// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}120// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}121//122// CHECK-LABEL: {{^---$}}123// CHECK: {{^name:[ ]+'fib<1>'$}}124// CHECK: {{^kind:[ ]+Memoization$}}125// CHECK: {{^event:[ ]+Begin$}}126// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:16:8'}}127// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}}128// CHECK-LABEL: {{^---$}}129// CHECK: {{^name:[ ]+'fib<1>'$}}130// CHECK: {{^kind:[ ]+Memoization$}}131// CHECK: {{^event:[ ]+End$}}132// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:16:8'}}133// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}}134//135// CHECK-LABEL: {{^---$}}136// CHECK: {{^name:[ ]+'fib<3>'$}}137// CHECK: {{^kind:[ ]+TemplateInstantiation$}}138// CHECK: {{^event:[ ]+End$}}139// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}140// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}141// CHECK-LABEL: {{^---$}}142// CHECK: {{^name:[ ]+'fib<3>'$}}143// CHECK: {{^kind:[ ]+Memoization$}}144// CHECK: {{^event:[ ]+Begin$}}145// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}146// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}147// CHECK-LABEL: {{^---$}}148// CHECK: {{^name:[ ]+'fib<3>'$}}149// CHECK: {{^kind:[ ]+Memoization$}}150// CHECK: {{^event:[ ]+End$}}151// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}152// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:28'$}}153//154// CHECK-LABEL: {{^---$}}155// CHECK: {{^name:[ ]+'fib<2>'$}}156// CHECK: {{^kind:[ ]+Memoization$}}157// CHECK: {{^event:[ ]+Begin$}}158// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}159// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}}160// CHECK-LABEL: {{^---$}}161// CHECK: {{^name:[ ]+'fib<2>'$}}162// CHECK: {{^kind:[ ]+Memoization$}}163// CHECK: {{^event:[ ]+End$}}164// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}165// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:6:46'$}}166// CHECK-LABEL: {{^---$}}167//168// CHECK: {{^name:[ ]+'fib<4>'$}}169// CHECK: {{^kind:[ ]+TemplateInstantiation$}}170// CHECK: {{^event:[ ]+End$}}171// CHECK: {{^orig:[ ]+'.*templight-nested-memoization.cpp:4:8'}}172// CHECK: {{^poi:[ ]+'.*templight-nested-memoization.cpp:173:8'$}}173fib<4> x;174 175