Skip to content
Snippets Groups Projects
Commit 51da1426 authored by Enea Zaffanella's avatar Enea Zaffanella
Browse files

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
parent 2a409b62
No related branches found
No related tags found
No related merge requests found
......@@ -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:
......
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment