forked from OSchip/llvm-project
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. llvm-svn: 185827
This commit is contained in:
parent
c0944b50fe
commit
4c409494d8
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue