https://github.com/owenca updated https://github.com/llvm/llvm-project/pull/124380
>From 5b45be664597788137686c1b374f362f23e06d78 Mon Sep 17 00:00:00 2001 From: Owen Pan <owenpi...@gmail.com> Date: Fri, 24 Jan 2025 18:07:05 -0800 Subject: [PATCH 1/2] [clang-format] Fix a crash on comment after TableGen l_paren Fixes #124248. --- clang/lib/Format/TokenAnnotator.cpp | 10 ++++------ clang/unittests/Format/FormatTestTableGen.cpp | 3 +++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index bc41d43d1438c5..655766178fbb0e 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -1115,7 +1115,7 @@ class AnnotatingParser { } if (!CurrentToken || CurrentToken->isNot(tok::l_paren)) return false; - skipToNextNonComment(); + next(); // FIXME: Hack using inheritance to child context Contexts.back().IsTableGenBangOpe = true; bool Result = parseParens(); @@ -1124,12 +1124,10 @@ class AnnotatingParser { } // SimpleValue 9: Cond operator if (Tok->is(TT_TableGenCondOperator)) { - Tok = CurrentToken; - skipToNextNonComment(); - if (!Tok || Tok->isNot(tok::l_paren)) + if (!CurrentToken || CurrentToken->isNot(tok::l_paren)) return false; - bool Result = parseParens(); - return Result; + next(); + return parseParens(); } // We have to check identifier at the last because the kind of bang/cond // operators are also identifier. diff --git a/clang/unittests/Format/FormatTestTableGen.cpp b/clang/unittests/Format/FormatTestTableGen.cpp index 7771f6a109a9ac..907f6a77b1df96 100644 --- a/clang/unittests/Format/FormatTestTableGen.cpp +++ b/clang/unittests/Format/FormatTestTableGen.cpp @@ -101,6 +101,9 @@ TEST_F(FormatTestTableGen, BangOperators) { " \"zerozero\",\n" " true: // default\n" " \"positivepositive\");\n" + " let Foo = !cond(\n" + " // comment\n" + " !eq(/* comment */ x, 0): \"zero\");\n" "}"); } >From ea51451712fcbad7f87b91fc2b25a8d9bccaa55e Mon Sep 17 00:00:00 2001 From: Owen Pan <owenpi...@gmail.com> Date: Sat, 25 Jan 2025 18:14:51 -0800 Subject: [PATCH 2/2] Update FormatTestTableGen.cpp (NFC) --- clang/unittests/Format/FormatTestTableGen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/unittests/Format/FormatTestTableGen.cpp b/clang/unittests/Format/FormatTestTableGen.cpp index 907f6a77b1df96..92377c31f2e911 100644 --- a/clang/unittests/Format/FormatTestTableGen.cpp +++ b/clang/unittests/Format/FormatTestTableGen.cpp @@ -101,7 +101,7 @@ TEST_F(FormatTestTableGen, BangOperators) { " \"zerozero\",\n" " true: // default\n" " \"positivepositive\");\n" - " let Foo = !cond(\n" + " let CondOpe3WithCommentAfterLParen = !cond(\n" " // comment\n" " !eq(/* comment */ x, 0): \"zero\");\n" "}"); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits