summaryrefslogtreecommitdiffstats
path: root/clang/lib/ASTMatchers/Dynamic/Marshallers.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/ASTMatchers/Dynamic/Marshallers.h')
-rw-r--r--clang/lib/ASTMatchers/Dynamic/Marshallers.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/clang/lib/ASTMatchers/Dynamic/Marshallers.h b/clang/lib/ASTMatchers/Dynamic/Marshallers.h
index 0df9c8cd60d..ae0c300d094 100644
--- a/clang/lib/ASTMatchers/Dynamic/Marshallers.h
+++ b/clang/lib/ASTMatchers/Dynamic/Marshallers.h
@@ -167,15 +167,13 @@ private:
/// out of the polymorphic object.
template <class PolyMatcher>
static void mergePolyMatchers(const PolyMatcher &Poly,
- std::vector<const DynTypedMatcher *> &Out,
+ std::vector<DynTypedMatcher> &Out,
ast_matchers::internal::EmptyTypeList) {}
template <class PolyMatcher, class TypeList>
static void mergePolyMatchers(const PolyMatcher &Poly,
- std::vector<const DynTypedMatcher *> &Out,
- TypeList) {
- Out.push_back(ast_matchers::internal::Matcher<typename TypeList::head>(Poly)
- .clone());
+ std::vector<DynTypedMatcher> &Out, TypeList) {
+ Out.push_back(ast_matchers::internal::Matcher<typename TypeList::head>(Poly));
mergePolyMatchers(Poly, Out, typename TypeList::tail());
}
@@ -193,10 +191,9 @@ template <typename T>
static VariantMatcher outvalueToVariantMatcher(const T &PolyMatcher,
typename T::ReturnTypes * =
NULL) {
- std::vector<const DynTypedMatcher *> Matchers;
+ std::vector<DynTypedMatcher> Matchers;
mergePolyMatchers(PolyMatcher, Matchers, typename T::ReturnTypes());
VariantMatcher Out = VariantMatcher::PolymorphicMatcher(Matchers);
- llvm::DeleteContainerPointers(Matchers);
return Out;
}
OpenPOWER on IntegriCloud