forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			36 lines
		
	
	
		
			667 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			667 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s
 | |
| // expected-no-diagnostics
 | |
| template<int i> struct x {
 | |
|   static const int j = i;
 | |
|   x<j>* y;
 | |
| };
 | |
| 
 | |
| template<int i>
 | |
| const int x<i>::j;
 | |
| 
 | |
| int array0[x<2>::j];
 | |
| 
 | |
| template<typename T>
 | |
| struct X0 {
 | |
|   static const unsigned value = sizeof(T);
 | |
| };
 | |
| 
 | |
| template<typename T>
 | |
| const unsigned X0<T>::value;
 | |
| 
 | |
| int array1[X0<int>::value == sizeof(int)? 1 : -1];
 | |
| 
 | |
| const unsigned& testX0() { return X0<int>::value; }
 | |
| 
 | |
| int array2[X0<int>::value == sizeof(int)? 1 : -1];
 | |
| 
 | |
| template<typename T>
 | |
| struct X1 {
 | |
|   static const unsigned value;
 | |
| };
 | |
| 
 | |
| template<typename T>
 | |
| const unsigned X1<T>::value = sizeof(T);
 | |
| 
 | |
| int array3[X1<int>::value == sizeof(int)? 1 : -1];
 |