// { dg-do assemble  }
// Origin: Alex Samuel <samuel@codesourcery.com>

namespace NS 
{ 

template <class T, int V>
struct Base
{
};

template <class T>
struct Z
{
  const static int value_ = false;
};

template <class T>
struct A : 
  public Base <T, Z<T>::value_>
{
}; 

template <class T> 
void f(T)
{
}

}


template <template <class T> class U> 
struct B 
{
};


int 
main ()
{
  B<NS::A> ba; 
  f (ba);  // Koenig lookup
  return 0;
}

