Home | History | Annotate | Download | only in temp.point
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 // XFAIL: *
      3 
      4 // Note: we fail this test because we perform template instantiation
      5 // at the end of the translation unit, so argument-dependent lookup
      6 // finds functions that occur after the point of instantiation. Note
      7 // that GCC fails this test; EDG passes the test in strict mode, but
      8 // not in relaxed mode.
      9 namespace N {
     10   struct A { };
     11   struct B : public A { };
     12 
     13   int& f0(A&);
     14 }
     15 
     16 template<typename T, typename Result>
     17 struct X0 {
     18   void test_f0(T t) {
     19     Result r = f0(t);
     20   };
     21 };
     22 
     23 void test_f0() {
     24   X0<N::A, int&> xA;
     25   xA.test_f0(N::A());
     26   X0<N::B, int&> xB;
     27   xB.test_f0(N::B());
     28 }
     29 
     30 namespace N {
     31   char& f0(B&);
     32 }
     33