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.