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>();
 | 
						|
}
 |