// RUN: clang-cc -fsyntax-only -verify %s extern "C" { void f(bool); } namespace std { using ::f; inline void f() { return f(true); } } namespace M { void f(float); } namespace N { using M::f; void f(int) { } // expected-note{{previous}} void f(int) { } // expected-error{{redefinition}} } namespace N { void f(double); void f(long); } struct X0 { void operator()(int); void operator()(long); }; struct X1 : X0 { // FIXME: give this operator() a 'float' parameter to test overloading // behavior. It currently fails. void operator()(); using X0::operator(); void test() { (*this)(1); } };