(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
lookup/
koenig15.C
// PR c++/95074 - Function found via ADL when it should not.
// { dg-do compile }

namespace N {
  struct S { };
  void f(S);
  void g(S);
}

namespace M {
  void f(int);
  void g(int);
}

void
fn0 ()
{
  N::S s;
  using M::f;
  f (s);
}

void
fn1 ()
{
  N::S s;
  extern void f(char);
  using M::f;
  f (s); // { dg-error "no matching function" }
}

void
fn2 ()
{
  N::S s;
  using M::f;
  extern void f(char);
  f (s); // { dg-error "no matching function" }
}

void
fn3 ()
{
  N::S s;
  extern void (*g)(char);
  g (s); // { dg-error "cannot convert" }
}