// RUN: %clang_cc1 -fsyntax-only -verify %s // XFAIL: * // Note: we fail this test because we perform template instantiation // at the end of the translation unit, so argument-dependent lookup // finds functions that occur after the point of instantiation. Note // that GCC fails this test; EDG passes the test in strict mode, but // not in relaxed mode. namespace N { struct A { }; struct B : public A { }; int& f0(A&); } template<typename T, typename Result> struct X0 { void test_f0(T t) { Result r = f0(t); }; }; void test_f0() { X0<N::A, int&> xA; xA.test_f0(N::A()); X0<N::B, int&> xB; xB.test_f0(N::B()); } namespace N { char& f0(B&); }