1// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3template <int> int f(int);  // expected-note 2{{candidate}}
4template <signed char> int f(int); // expected-note 2{{candidate}}
5int i1 = f<1>(0); // expected-error{{ambiguous}}
6int i2 = f<1000>(0); // expected-error{{ambiguous}}
7
8namespace PR6707 {
9  template<typename T, T Value>
10  struct X { };
11
12  template<typename T, T Value>
13  void f(X<T, Value>);
14
15  void g(X<int, 10> x) {
16    f(x);
17  }
18
19  static const unsigned char ten = 10;
20  template<typename T, T Value, typename U>
21  void f2(X<T, Value>, X<U, Value>);
22
23  void g2() {
24    f2(X<int, 10>(), X<char, ten>());
25  }
26}
27