https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104476
Bug ID: 104476
Summary: using-decl shadowed by member function when in
incomplete-class context
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ppalka at gcc dot gnu.org
Target Milestone: ---
We reject the following valid testcase:
struct A {
static void f();
};
struct B : A
{
using A::f; // #1
static void f(int); // #2
auto g() -> decltype(f()); // Call should be accepted via #1, instead
rejected
};
with
<stdin>:9:25: error: no matching function for call to ‘B::f()’
<stdin>:8:15: note: candidate: ‘static void B::f(int)’
<stdin>:8:15: note: candidate expects 1 argument, 0 provided
<stdin>:9:25: error: no matching function for call to ‘B::f()’
<stdin>:8:15: note: candidate: ‘static void B::f(int)’
<stdin>:8:15: note: candidate expects 1 argument, 0 provided
Yet if we swap the order of the declarations #1 and #2, then we accept the
testcase.