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