hubert.reinterpretcast added a comment. @aaron.ballman @cor3ntin, are we confident that testing the non-lambda cases is sufficient to cover the lambda cases as well?
I suggest using a pattern such as: int (*test_cxx2b_constexpr_label_in_body())() { auto qq = []() { label: return 42; }; const int x = qq(); auto ff = [] { return x; }; // passes in C++2b; error in C++20 return ff; } For each of the cases. ================ Comment at: clang/lib/AST/ExprConstant.cpp:5010 + // through a declaration of a variable with static or thread storage duration. + if (VD->isLocalVarDecl() && !VD->isConstexpr() && VD->isStaticLocal()) { + Info.CCEDiag(VD->getLocation(), diag::note_constexpr_static_local) ---------------- I don't see anything in the wording exempting `constexpr static` (although I suppose it makes sense to, but GCC does not make such an exemption in its C++2b mode). @cor3ntin, can you open a discussion on the reflector? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111400/new/ https://reviews.llvm.org/D111400 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits