Author: Stephen Kelly Date: 2019-12-29T14:58:56Z New Revision: 544f200c785f0314949ba3b8d1c51f65bf8d7761
URL: https://github.com/llvm/llvm-project/commit/544f200c785f0314949ba3b8d1c51f65bf8d7761 DIFF: https://github.com/llvm/llvm-project/commit/544f200c785f0314949ba3b8d1c51f65bf8d7761.diff LOG: Fix newline handling in clang-query parser Don't prematurely remove characters from the end of the string Added: Modified: clang-tools-extra/clang-query/QueryParser.cpp clang-tools-extra/unittests/clang-query/QueryParserTest.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-query/QueryParser.cpp b/clang-tools-extra/clang-query/QueryParser.cpp index a980722de9e6..896145bf961a 100644 --- a/clang-tools-extra/clang-query/QueryParser.cpp +++ b/clang-tools-extra/clang-query/QueryParser.cpp @@ -250,7 +250,7 @@ QueryRef QueryParser::doParse() { return completeMatcherExpression(); Diagnostics Diag; - auto MatcherSource = Line.trim(); + auto MatcherSource = Line.ltrim(); auto OrigMatcherSource = MatcherSource; Optional<DynTypedMatcher> Matcher = Parser::parseMatcherExpression( MatcherSource, nullptr, &QS.NamedValues, &Diag); diff --git a/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp b/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp index 79fcfcae6e0d..fa16c7172bac 100644 --- a/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp +++ b/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp @@ -348,4 +348,12 @@ match callExpr ASSERT_TRUE(isa<InvalidQuery>(Q)); EXPECT_EQ("1:1: Invalid token <NewLine> found when looking for a value.", cast<InvalidQuery>(Q)->ErrStr); + + Q = parse("\nm parmVarDecl()\nlet someMatcher\n"); + + ASSERT_TRUE(isa<MatchQuery>(Q)); + Q = parse(Q->RemainingContent); + + ASSERT_TRUE(isa<InvalidQuery>(Q)); + EXPECT_EQ("1:1: Invalid token <NewLine> found when looking for a value.", cast<InvalidQuery>(Q)->ErrStr); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits