2011-11-08 02:40:31 +08:00
// RUN: %clang_cc1 %s -fsyntax-only -verify
// PR11179
template < short T > class Type1 { } ;
2012-06-19 08:37:47 +08:00
template < short T > void Function1 ( Type1 < T > & x ) { } // expected-note{{candidate function [with T = -42] not viable: expects an l-value for 1st argument}}
2011-11-08 02:40:31 +08:00
template < unsigned short T > class Type2 { } ;
2012-06-19 08:37:47 +08:00
template < unsigned short T > void Function2 ( Type2 < T > & x ) { } // expected-note{{candidate function [with T = 42] not viable: expects an l-value for 1st argument}}
2011-11-08 02:40:31 +08:00
void Function ( ) {
Function1 ( Type1 < - 42 > ( ) ) ; // expected-error{{no matching function for call to 'Function1'}}
Function2 ( Type2 < 42 > ( ) ) ; // expected-error{{no matching function for call to 'Function2'}}
}