1 // { dg-do assemble  }
2 // Function pointers are ignored in Koenig lookup. (DR 218)
3 namespace A{
4   void foo();
5   struct X{};
6   void (*bar)(X*)=0;		// { dg-message "A::bar" }
7 }
8 using A::X;
9 
10 void (*foo)(X*)=0;
11 
g()12 void g()
13 {
14   foo(new X);            // ok -- DR 218 says that we find the global
15 			 // foo variable first, and therefore do not
16 			 // perform argument-dependent lookup.
17   bar(new X);            // { dg-error "not declared" }
18   // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 17 }
19 }
20