diff --git a/toolchain/check/cpp/type_mapping.cpp b/toolchain/check/cpp/type_mapping.cpp index b099541135af..2e41d4035989 100644 --- a/toolchain/check/cpp/type_mapping.cpp +++ b/toolchain/check/cpp/type_mapping.cpp @@ -385,14 +385,16 @@ auto InventClangArg(Context& context, SemIR::InstId arg_id) -> clang::Expr* { auto InventClangArgs(Context& context, llvm::ArrayRef arg_ids) -> std::optional> { - llvm::SmallVector arg_exprs; - arg_exprs.reserve(arg_ids.size()); + std::optional> arg_exprs; + arg_exprs.emplace(); + arg_exprs->reserve(arg_ids.size()); for (SemIR::InstId arg_id : arg_ids) { auto* arg_expr = InventClangArg(context, arg_id); if (!arg_expr) { - return std::nullopt; + arg_exprs = std::nullopt; + return arg_exprs; } - arg_exprs.push_back(arg_expr); + arg_exprs->push_back(arg_expr); } return arg_exprs; }