1// PR c++/29131
2// int has no associated namespaces, so arg-dep lookup doesn't find g(int).
3
4template <class T> int f() { return g(T()); } // { dg-error "argument-dependent" }
5int g(int);				      // { dg-message "declared here" }
6int i = f<int>();
7
8// PR c++/24163
9// Unqualified lookup doesn't find names from dependent bases.
10
11template <class T>
12struct A
13{
14  static void h(T);
15};
16
17template <class T> struct B: A<T>
18{
19  void f() { h(T()); }		// { dg-error "argument-dependent" "arg-dep" }
20  static void g() { h(T()); }	// { dg-error "argument-dependent" "arg-dep" }
21};
22
23int main()
24{
25  B<int> b;
26  b.f();
27  b.g();
28}
29
30// { dg-message "dependent base .A.int" "base" { target *-*-* } 19 }
31// { dg-message "this->h" "this->h" { target *-*-* } 19 }
32// { dg-message "dependent base .A.int" "base" { target *-*-* } 20 }
33// { dg-message "B::h" "B::h" { target *-*-* } 20 }
34