https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126324
Bug ID: 126324
Summary: Virtual function call with covariant return in
constant evaluation causes ICE
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dr.xiaosa at gmail dot com
Target Milestone: ---
https://godbolt.org/z/5PcrsTMKK
===
struct B {
virtual constexpr B* clone() { return nullptr; }
};
struct D : B {
constexpr D* clone() override { return nullptr; }
};
inline constexpr auto test = [] {
D v;
B* d = &v;
B* b = d->clone();
return 0;
}();
===