Author: Duncan P. N. Exon Smith Date: 2022-01-11T17:01:46-08:00 New Revision: f0b2a1a629dab17f2ea161a9281d8dc63b37a7a0
URL: https://github.com/llvm/llvm-project/commit/f0b2a1a629dab17f2ea161a9281d8dc63b37a7a0 DIFF: https://github.com/llvm/llvm-project/commit/f0b2a1a629dab17f2ea161a9281d8dc63b37a7a0.diff LOG: ASTMatchers: Avoid using SmallVector::set_size() Update `variadicMatcherDescriptor` to assert on reserved capacity and to call `emplace_back()` instead of calling `set_size()` and constructing the element in-place. Differential Revision: https://reviews.llvm.org/D115379 Added: Modified: clang/lib/ASTMatchers/Dynamic/Marshallers.h Removed: ################################################################################ diff --git a/clang/lib/ASTMatchers/Dynamic/Marshallers.h b/clang/lib/ASTMatchers/Dynamic/Marshallers.h index 2b4d9b6a7e852..3e9c4f31b84d3 100644 --- a/clang/lib/ASTMatchers/Dynamic/Marshallers.h +++ b/clang/lib/ASTMatchers/Dynamic/Marshallers.h @@ -524,8 +524,9 @@ variadicMatcherDescriptor(StringRef MatcherName, SourceRange NameRange, } return {}; } - InnerArgs.set_size(i + 1); - InnerArgsPtr[i] = new (&InnerArgs[i]) ArgT(ArgTraits::get(Value)); + assert(InnerArgs.size() < InnerArgs.capacity()); + InnerArgs.emplace_back(ArgTraits::get(Value)); + InnerArgsPtr[i] = &InnerArgs[i]; } return outvalueToVariantMatcher(Func(InnerArgsPtr)); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits