33 lines
		
	
	
		
			696 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			696 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -verify %s
 | 
						|
 | 
						|
namespace {
 | 
						|
template <bool, typename>
 | 
						|
void Foo() {}
 | 
						|
 | 
						|
template <int size>
 | 
						|
void Foo() {
 | 
						|
  int arr[size];
 | 
						|
  // expected-error@-1 {{'arr' declared as an array with a negative size}}
 | 
						|
}
 | 
						|
}
 | 
						|
 | 
						|
void test_foo() {
 | 
						|
  Foo<-1>();
 | 
						|
  // expected-note@-1 {{in instantiation of function template specialization '(anonymous namespace)::Foo<-1>' requested here}}
 | 
						|
}
 | 
						|
 | 
						|
template <bool, typename>
 | 
						|
void Bar() {}
 | 
						|
 | 
						|
template <int size>
 | 
						|
void Bar() {
 | 
						|
  int arr[size];
 | 
						|
  // expected-error@-1 {{'arr' declared as an array with a negative size}}
 | 
						|
}
 | 
						|
 | 
						|
void test_bar() {
 | 
						|
  Bar<-1>();
 | 
						|
  // expected-note@-1 {{in instantiation of function template specialization 'Bar<-1>' requested here}}
 | 
						|
}
 | 
						|
 |