diff --git a/unittests/AST/MatchVerifier.h b/unittests/AST/MatchVerifier.h index 56dcc68f20222c7e8aec98fa4665aec1a50db9fb..bc8bf9ea347997cf91bb70051a4f6d74700141a7 100644 --- a/unittests/AST/MatchVerifier.h +++ b/unittests/AST/MatchVerifier.h @@ -34,12 +34,23 @@ public: template <typename MatcherType> testing::AssertionResult match(const std::string &Code, const MatcherType &AMatcher) { - return match(Code, AMatcher, Lang_CXX); + std::vector<std::string> Args; + return match(Code, AMatcher, Args, Lang_CXX); } template <typename MatcherType> testing::AssertionResult match(const std::string &Code, - const MatcherType &AMatcher, Language L); + const MatcherType &AMatcher, + Language L) { + std::vector<std::string> Args; + return match(Code, AMatcher, Args, L); + } + + template <typename MatcherType> + testing::AssertionResult match(const std::string &Code, + const MatcherType &AMatcher, + std::vector<std::string>& Args, + Language L); protected: virtual void run(const MatchFinder::MatchResult &Result); @@ -64,13 +75,13 @@ private: /// verifier for the matched node. template <typename NodeType> template <typename MatcherType> testing::AssertionResult MatchVerifier<NodeType>::match( - const std::string &Code, const MatcherType &AMatcher, Language L) { + const std::string &Code, const MatcherType &AMatcher, + std::vector<std::string>& Args, Language L) { MatchFinder Finder; Finder.addMatcher(AMatcher.bind(""), this); OwningPtr<tooling::FrontendActionFactory> Factory( tooling::newFrontendActionFactory(&Finder)); - std::vector<std::string> Args; StringRef FileName; switch (L) { case Lang_C: diff --git a/unittests/AST/SourceLocationTest.cpp b/unittests/AST/SourceLocationTest.cpp index 4a4250710a95d0ea8580a5be55615a58d073eddf..95ef2c425b5cb10fbac4733f4f237aab1e3f854b 100644 --- a/unittests/AST/SourceLocationTest.cpp +++ b/unittests/AST/SourceLocationTest.cpp @@ -211,21 +211,18 @@ TEST(CXXFunctionalCastExpr, SourceRange) { functionalCastExpr(), Lang_CXX11)); } -#if !defined(_MSC_VER) -// FIXME: It could pass if MS-compatible mode were disabled. -// Args.push_back("-fno-delayed-template-parsing"); - TEST(CXXUnresolvedConstructExpr, SourceRange) { RangeVerifier<CXXUnresolvedConstructExpr> Verifier; Verifier.expectRange(3, 10, 3, 12); + std::vector<std::string> Args; + Args.push_back("-fno-delayed-template-parsing"); EXPECT_TRUE(Verifier.match( "template <typename U>\n" "U foo() {\n" " return U{};\n" "}", - unresolvedConstructExpr(), Lang_CXX11)); + unresolvedConstructExpr(), Args, Lang_CXX11)); } -#endif } // end namespace ast_matchers } // end namespace clang