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

Reply via email to