blob: 75580d245cfc7296ff9679324e7bf873384ba7cf (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// 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&);
}
|