https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116756
Bug ID: 116756
Summary: ICE from expand_expr_real_1 with recursive lambda and
constexpr if
Product: gcc
Version: 14.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: ---
Reduced from PR116682#c11, not a regression:
struct Store {
void openDF() {
auto lambda = [this](auto& self, auto I) {
if constexpr (sizeof(I) == 1) {
auto next = [&self] { self(self, 42); };
openSeries(next);
}
};
lambda(lambda, 'c');
}
template<class T> void openSeries(T) { }
};
int main() {
Store store;
store.openDF();
}
during RTL pass: expand
<stdin>: In lambda function:
<stdin>:6:19: internal compiler error: in expand_expr_real_1, at expr.cc:11405