================ @@ -8207,6 +8207,14 @@ ExprResult InitializationSequence::Perform(Sema &S, Kind.getRange().getEnd()); } else { CurInit = new (S.Context) ImplicitValueInitExpr(Step->Type); + // Note the return value isn't used to return early + // to preserve the AST as best as possible even though an error + // might have occurred. For struct initialization it also allows + // all field assignments to be checked rather than bailing on the + // first error. ---------------- Sirraide wrote:
I still think the comment is superfluous. This pattern of potentially diagnosing something, but not returning `ExprError()`/`true`/whatever so we can still construct a somewhat valid AST is fairly common in Sema, so I don’t think every (or any) call to this function in this fashion really needs to be commented (and the same applies to the call in `InitializationSequence::Perform()`). https://github.com/llvm/llvm-project/pull/106321 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits