aaron.ballman added inline comments.
================ Comment at: lib/AST/Expr.cpp:1272-1274 + for (unsigned I = NumArgs; I != NumArgsAllocated; ++I) { + TrailingArgs[I] = nullptr; } ---------------- Could use `std::fill()` here to remove the for-loop. Your call whether that looks cleaner or not. ================ Comment at: lib/Sema/SemaExpr.cpp:5810 + // However it may not have been constructed with enough storage. In this + // case rebuild the node with enough storage. The waste of space is + // immaterial since this only happens when some typos were corrected. ---------------- case rebuild -> case, rebuild ================ Comment at: lib/Sema/SemaOverload.cpp:12909-12910 + call->setNumArgsUnsafe( + std::max<unsigned>(Args.size(), proto->getNumParams())); if (ConvertArgumentsForCall(call, op, nullptr, proto, Args, RParenLoc)) ---------------- Oye. When we had to call this hack in one place, I could hold my nose, but having to call it randomly any time something like a call expression is created is a bit too much for me. How awful is the alternative fix, such as making things resilient to null parameters in `BuildResolvedCallExpr()`? Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57948/new/ https://reviews.llvm.org/D57948 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits