https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102423
Bug ID: 102423
Summary: False accept of virtual methods with deduced return
type
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: fchelnokov at gmail dot com
Target Milestone: ---
GCC erroneously accepts virtual methods with deduced return type, which are
prohibited by the standard (https://eel.is/c++draft/dcl.spec.auto#general-14):
```
#include <iostream>
struct A {
virtual auto f() -> auto { return 1; }
};
struct B: A {
virtual auto f() -> auto override { return 2.5; }
};
int main() {
B b;
A & a = b;
std::cout << b.A::f() << ' ' << b.f() << ' ' << a.f();
}
```
Demo: https://gcc.godbolt.org/z/n3ejPshe7