[clang-tools-extra] dc93540 - Fix handling of newlines in clang-query
Nico Weber via cfe-commits
cfe-commits at lists.llvm.org
Sun Dec 29 07:52:11 PST 2019
On Sun, Dec 29, 2019 at 6:59 AM Stephen Kelly via cfe-commits <
cfe-commits at lists.llvm.org> wrote:
>
> Author: Stephen Kelly
> Date: 2019-12-29T14:58:56Z
> New Revision: dc93540acbf047cf54052568d2826d1a06df025e
>
> URL:
> https://github.com/llvm/llvm-project/commit/dc93540acbf047cf54052568d2826d1a06df025e
> DIFF:
> https://github.com/llvm/llvm-project/commit/dc93540acbf047cf54052568d2826d1a06df025e.diff
>
> LOG: Fix handling of newlines in clang-query
>
> Replace assert with diagnostic for missing newline.
>
> Added:
>
>
> Modified:
> clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
> clang/lib/ASTMatchers/Dynamic/Parser.cpp
>
> Removed:
>
>
>
>
> ################################################################################
> diff --git a/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
> b/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
> index 4725789f29f2..79fcfcae6e0d 100644
> --- a/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
> +++ b/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
> @@ -330,4 +330,22 @@ match callExpr
> EXPECT_EQ("1:9: Error parsing matcher. Found token <NewLine> "
> "while looking for '('.",
> cast<InvalidQuery>(Q)->ErrStr);
> +
> + Q = parse("let someMatcher\nm parmVarDecl()");
> +
> + 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\nm parmVarDecl()");
> +
> + 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);
> +
> + Q = parse("\nlet someMatcher\n");
> +
> + ASSERT_TRUE(isa<InvalidQuery>(Q));
> + EXPECT_EQ("1:1: Invalid token <NewLine> found when looking for a
> value.", cast<InvalidQuery>(Q)->ErrStr);
> }
>
> diff --git a/clang/lib/ASTMatchers/Dynamic/Parser.cpp
> b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
> index caa3a3bd0953..ef209d1274af 100644
> --- a/clang/lib/ASTMatchers/Dynamic/Parser.cpp
> +++ b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
> @@ -607,15 +607,13 @@ bool Parser::parseExpressionImpl(VariantValue
> *Value) {
> // This error was already reported by the tokenizer.
> return false;
> case TokenInfo::TK_NewLine:
> - llvm_unreachable("Newline should never be found here");
> - return false;
> case TokenInfo::TK_OpenParen:
> case TokenInfo::TK_CloseParen:
> case TokenInfo::TK_Comma:
> case TokenInfo::TK_Period:
> case TokenInfo::TK_InvalidChar:
> const TokenInfo Token = Tokenizer->consumeNextToken();
> - Error->addError(Token.Range, Error->ET_ParserInvalidToken) <<
> Token.Text;
> + Error->addError(Token.Range, Error->ET_ParserInvalidToken) <<
> (Token.Kind == TokenInfo::TK_NewLine ? "NewLine" : Token.Text);
>
Please clang-format your local diff before committing.
> return false;
> }
>
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20191229/3900846f/attachment-0001.html>
More information about the cfe-commits
mailing list