| // RUN: %clang_cc1 -fsyntax-only -verify %s |
| template<typename T, typename Result> |
| template struct N2::call_f0<int, char&>; |
| template struct N2::call_f0<N1::X0, int&>; |
| template<typename T, typename Result> |
| Result &result = f0(t); // expected-error 2{{no matching}} |
| template struct N3::call_f0<int, char&>; // expected-note{{instantiation}} |
| template struct N3::call_f0<N1::X0, int&>; |
| template<typename T, typename Result> |
| template struct N4::call_f0<int, short&>; |
| template struct N4::call_f0<N1::X0, int&>; |
| template struct N3::call_f0<int, short&>; // expected-note{{instantiation}} |
| // FIXME: test overloaded function call operators, calls to member |