175 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			C++
		
	
	
	
| // 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;
 | |
| 
 |