https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110330
Bug ID: 110330 Summary: GCC does not diagnose ambiguous function introduced from base class Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: csaba_22 at yahoo dot co.uk Target Milestone: --- The following code struct Foo{}; struct Bar{}; struct Base { Foo func1(const Foo , const Bar = Bar{}) const { return {}; }; }; struct Derived : public Base { using Base::func1; Foo func1(const Foo ) const { return {}; }; }; int main() { Foo foo; Derived der; der.func1(foo); } is rejected by ICX and clang, but accepted by GCC (up to 13.1). https://godbolt.org/z/4M3rrs3r4 The consensus at https://stackoverflow.com/questions/76517300/gcc-does-not-see-function-introduced-from-base-class-as-ambiguous seems to be that this is a bug. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84832 was shown as a possible duplicate, although the problem there wasn't ambiguity.