summaryrefslogtreecommitdiff
path: root/unittests/AST
diff options
context:
space:
mode:
authorEnea Zaffanella <zaffanella@cs.unipr.it>2013-07-08 14:50:30 +0000
committerEnea Zaffanella <zaffanella@cs.unipr.it>2013-07-08 14:50:30 +0000
commit51da1426b5ec43b6ac42777b2f28f89e3d3b3dca (patch)
treef59a548b046373e01782ba40136b6795d3415a0d /unittests/AST
parent2a409b62126d8f0b8f5749d5ed435ad2b394b526 (diff)
downloadclang-51da1426b5ec43b6ac42777b2f28f89e3d3b3dca.tar.gz
clang-51da1426b5ec43b6ac42777b2f28f89e3d3b3dca.tar.bz2
clang-51da1426b5ec43b6ac42777b2f28f89e3d3b3dca.tar.xz
Fixed testcase failing under MS by adding "-fno-delayed-template-parsing",
as suggested by Takumi. To this end, added a MatchVerifier::match() overload accepting a vector of invocation arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185827 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests/AST')
-rw-r--r--unittests/AST/MatchVerifier.h19
-rw-r--r--unittests/AST/SourceLocationTest.cpp9
2 files changed, 18 insertions, 10 deletions
diff --git a/unittests/AST/MatchVerifier.h b/unittests/AST/MatchVerifier.h
index 56dcc68f20..bc8bf9ea34 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 4a4250710a..95ef2c425b 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