forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			37 lines
		
	
	
		
			742 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			742 B
		
	
	
	
		
			C++
		
	
	
	
| #include "benchmark/benchmark.h"
 | |
| 
 | |
| #include <cstdint>
 | |
| 
 | |
| namespace {
 | |
| #if defined(__GNUC__)
 | |
|   std::uint64_t double_up(const std::uint64_t x) __attribute__ ((const));
 | |
| #endif
 | |
|   std::uint64_t double_up(const std::uint64_t x) {
 | |
|     return x * 2;
 | |
|   }
 | |
| }
 | |
| 
 | |
| int main(int, char*[]) {
 | |
| 
 | |
|   // this test verifies compilation of DoNotOptimize() for some types
 | |
| 
 | |
|   char buffer8[8];
 | |
|   benchmark::DoNotOptimize(buffer8);
 | |
| 
 | |
|   char buffer20[20];
 | |
|   benchmark::DoNotOptimize(buffer20);
 | |
| 
 | |
|   char buffer1024[1024];
 | |
|   benchmark::DoNotOptimize(buffer1024);
 | |
|   benchmark::DoNotOptimize(&buffer1024[0]);
 | |
| 
 | |
|   int x = 123;
 | |
|   benchmark::DoNotOptimize(x);
 | |
|   benchmark::DoNotOptimize(&x);
 | |
|   benchmark::DoNotOptimize(x += 42);
 | |
| 
 | |
|   benchmark::DoNotOptimize(double_up(x));
 | |
| 
 | |
|   return 0;
 | |
| }
 |