forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			34 lines
		
	
	
		
			453 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			453 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s
 | |
| // expected-no-diagnostics
 | |
| 
 | |
| extern int array[1];
 | |
| 
 | |
| template <typename>
 | |
| class C {
 | |
|   enum { D };
 | |
| public:
 | |
|   template <typename A> void foo1() {
 | |
|     extern int array[((int)C<A>::k > (int)D) ? 1 : -1];
 | |
|   }
 | |
| };
 | |
| 
 | |
| template<>
 | |
| class C<int> {
 | |
| public:
 | |
|   const static int k = 2;
 | |
| };
 | |
| 
 | |
| void foo2() {
 | |
|   C<char> c;
 | |
|   c.foo1<int>();
 | |
| }
 | |
| 
 | |
| template<int n>
 | |
| void foo3() {
 | |
|   extern int array[n ? 1 : -1];
 | |
| }
 | |
| 
 | |
| void foo4() {
 | |
|   foo3<5>();
 | |
| }
 |