[PATCH] D115379: ASTMatchers: Avoid using SmallVector::set_size()
Duncan P. N. Exon Smith via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 8 12:39:39 PST 2021
dexonsmith created this revision.
dexonsmith added reviewers: njames93, aaron.ballman.
dexonsmith requested review of this revision.
Herald added a project: clang.
Update `variadicMatcherDescriptor` to assert on reserved capacity and
to call `emplace_back()` instead of calling `set_size()` and constructing
the element in-place.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D115379
Files:
clang/lib/ASTMatchers/Dynamic/Marshallers.h
Index: clang/lib/ASTMatchers/Dynamic/Marshallers.h
===================================================================
--- clang/lib/ASTMatchers/Dynamic/Marshallers.h
+++ clang/lib/ASTMatchers/Dynamic/Marshallers.h
@@ -524,8 +524,9 @@
}
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));
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D115379.392880.patch
Type: text/x-patch
Size: 581 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20211208/4f78c129/attachment.bin>
More information about the cfe-commits
mailing list