| // RUN: %clang_cc1 -fsyntax-only -verify %s | |
| // PR5336 | |
| template<typename FromCl> | |
| struct isa_impl_cl { | |
| template<class ToCl> | |
| static void isa(const FromCl &Val) { } | |
| }; | |
| template<class X, class Y> | |
| void isa(const Y &Val) { return isa_impl_cl<Y>::template isa<X>(Val); } | |
| class Value; | |
| void f0(const Value &Val) { isa<Value>(Val); } | |
| // Implicit template-ids. | |
| template<typename T> | |
| struct X0 { | |
| template<typename U> | |
| void f1(); | |
| template<typename U> | |
| void f2(U) { | |
| f1<U>(); | |
| } | |
| }; | |
| void test_X0_int(X0<int> xi, float f) { | |
| xi.f2(f); | |
| } |