Author: Owen Pan
Date: 2025-04-30T00:12:41-07:00
New Revision: 7752e0a10b25da2f2eadbed10606bd5454dbca05

URL: 
https://github.com/llvm/llvm-project/commit/7752e0a10b25da2f2eadbed10606bd5454dbca05
DIFF: 
https://github.com/llvm/llvm-project/commit/7752e0a10b25da2f2eadbed10606bd5454dbca05.diff

LOG: Revert "[clang-format] Add OneLineFormatOffRegex option (#137577)"

This reverts commit b8bb1ccb4f9126d1bc9817be24e17f186a75a08b which triggered
an assertion failure in CodeGenTest.TestNonAlterTest.

Added: 
    

Modified: 
    clang/docs/ClangFormatStyleOptions.rst
    clang/docs/ReleaseNotes.rst
    clang/include/clang/Format/Format.h
    clang/lib/Format/Format.cpp
    clang/lib/Format/FormatTokenLexer.cpp
    clang/unittests/Format/ConfigParseTest.cpp
    clang/unittests/Format/FormatTest.cpp

Removed: 
    


################################################################################
diff  --git a/clang/docs/ClangFormatStyleOptions.rst 
b/clang/docs/ClangFormatStyleOptions.rst
index b47291599649d..3f8a5f49313b2 100644
--- a/clang/docs/ClangFormatStyleOptions.rst
+++ b/clang/docs/ClangFormatStyleOptions.rst
@@ -5195,29 +5195,6 @@ the configuration (without a prefix: ``Auto``).
   Add a space in front of an Objective-C protocol list, i.e. use
   ``Foo <Protocol>`` instead of ``Foo<Protocol>``.
 
-.. _OneLineFormatOffRegex:
-
-**OneLineFormatOffRegex** (``String``) :versionbadge:`clang-format 21` :ref:`¶ 
<OneLineFormatOffRegex>`
-  A regular expression that describes markers for turning formatting off for
-  one line. If it matches a comment that is the only token of a line,
-  clang-format skips the comment and the next line. Otherwise, clang-format
-  skips lines containing a matched token.
-
-  .. code-block:: c++
-
-     // OneLineFormatOffRegex: ^(// NOLINT|logger$)
-     // results in the output below:
-     int a;
-     int b ;  // NOLINT
-     int c;
-      // NOLINTNEXTLINE
-     int d ;
-     int e;
-     s = "// NOLINT";
-      logger() ;
-     logger2();
-     my_logger();
-
 .. _PPIndentWidth:
 
 **PPIndentWidth** (``Integer``) :versionbadge:`clang-format 13` :ref:`¶ 
<PPIndentWidth>`

diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 80399e458aec3..bc68bb8b70b3d 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -720,7 +720,6 @@ clang-format
   top of the file.
 - Add ``EnumTrailingComma`` option for inserting/removing commas at the end of
   ``enum`` enumerator lists.
-- Add ``OneLineFormatOffRegex`` option for turning formatting off for one line.
 
 libclang
 --------

diff  --git a/clang/include/clang/Format/Format.h 
b/clang/include/clang/Format/Format.h
index 7fe41d800ccb3..f6ceef08b46da 100644
--- a/clang/include/clang/Format/Format.h
+++ b/clang/include/clang/Format/Format.h
@@ -3654,27 +3654,6 @@ struct FormatStyle {
   /// \version 3.7
   bool ObjCSpaceBeforeProtocolList;
 
-  /// A regular expression that describes markers for turning formatting off 
for
-  /// one line. If it matches a comment that is the only token of a line,
-  /// clang-format skips the comment and the next line. Otherwise, clang-format
-  /// skips lines containing a matched token.
-  /// \code
-  ///    // OneLineFormatOffRegex: ^(// NOLINT|logger$)
-  ///    // results in the output below:
-  ///    int a;
-  ///    int b ;  // NOLINT
-  ///    int c;
-  ///     // NOLINTNEXTLINE
-  ///    int d ;
-  ///    int e;
-  ///    s = "// NOLINT";
-  ///     logger() ;
-  ///    logger2();
-  ///    my_logger();
-  /// \endcode
-  /// \version 21
-  std::string OneLineFormatOffRegex;
-
   /// Different ways to try to fit all constructor initializers on a line.
   enum PackConstructorInitializersStyle : int8_t {
     /// Always put each constructor initializer on its own line.
@@ -5420,7 +5399,6 @@ struct FormatStyle {
            ObjCPropertyAttributeOrder == R.ObjCPropertyAttributeOrder &&
            ObjCSpaceAfterProperty == R.ObjCSpaceAfterProperty &&
            ObjCSpaceBeforeProtocolList == R.ObjCSpaceBeforeProtocolList &&
-           OneLineFormatOffRegex == R.OneLineFormatOffRegex &&
            PackConstructorInitializers == R.PackConstructorInitializers &&
            PenaltyBreakAssignment == R.PenaltyBreakAssignment &&
            PenaltyBreakBeforeFirstCallParameter ==

diff  --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index 2f4b64ef4f5fe..5a1c3f556b331 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -1100,7 +1100,6 @@ template <> struct MappingTraits<FormatStyle> {
     IO.mapOptional("ObjCSpaceAfterProperty", Style.ObjCSpaceAfterProperty);
     IO.mapOptional("ObjCSpaceBeforeProtocolList",
                    Style.ObjCSpaceBeforeProtocolList);
-    IO.mapOptional("OneLineFormatOffRegex", Style.OneLineFormatOffRegex);
     IO.mapOptional("PackConstructorInitializers",
                    Style.PackConstructorInitializers);
     IO.mapOptional("PenaltyBreakAssignment", Style.PenaltyBreakAssignment);

diff  --git a/clang/lib/Format/FormatTokenLexer.cpp 
b/clang/lib/Format/FormatTokenLexer.cpp
index bff9db22ac657..a4c94ac411fe0 100644
--- a/clang/lib/Format/FormatTokenLexer.cpp
+++ b/clang/lib/Format/FormatTokenLexer.cpp
@@ -83,43 +83,8 @@ FormatTokenLexer::FormatTokenLexer(
 ArrayRef<FormatToken *> FormatTokenLexer::lex() {
   assert(Tokens.empty());
   assert(FirstInLineIndex == 0);
-  const llvm::Regex FormatOffRegex(Style.OneLineFormatOffRegex);
-  enum { FO_None, FO_CurrentLine, FO_NextLine } FormatOff = FO_None;
   do {
     Tokens.push_back(getNextToken());
-    auto &Tok = *Tokens.back();
-    const auto NewlinesBefore = Tok.NewlinesBefore;
-    switch (FormatOff) {
-    case FO_CurrentLine:
-      if (NewlinesBefore == 0)
-        Tok.Finalized = true;
-      else
-        FormatOff = FO_None;
-      break;
-    case FO_NextLine:
-      if (NewlinesBefore > 1) {
-        FormatOff = FO_None;
-      } else {
-        Tok.Finalized = true;
-        FormatOff = FO_CurrentLine;
-      }
-      break;
-    default:
-      if (!FormattingDisabled && FormatOffRegex.match(Tok.TokenText)) {
-        if (Tok.is(tok::comment) &&
-            (NewlinesBefore > 0 || &Tok == Tokens.front())) {
-          Tok.Finalized = true;
-          FormatOff = FO_NextLine;
-        } else {
-          for (auto *Token : reverse(Tokens)) {
-            Token->Finalized = true;
-            if (Token->NewlinesBefore > 0)
-              break;
-          }
-          FormatOff = FO_CurrentLine;
-        }
-      }
-    }
     if (Style.isJavaScript()) {
       tryParseJSRegexLiteral();
       handleTemplateStrings();

diff  --git a/clang/unittests/Format/ConfigParseTest.cpp 
b/clang/unittests/Format/ConfigParseTest.cpp
index f7ab5546c7193..2b08b794792e9 100644
--- a/clang/unittests/Format/ConfigParseTest.cpp
+++ b/clang/unittests/Format/ConfigParseTest.cpp
@@ -295,7 +295,6 @@ TEST(ConfigParseTest, ParsesConfiguration) {
   FormatStyle Style = {};
   Style.Language = FormatStyle::LK_Cpp;
   CHECK_PARSE("CommentPragmas: '// abc$'", CommentPragmas, "// abc$");
-  CHECK_PARSE("OneLineFormatOffRegex: // ab$", OneLineFormatOffRegex, "// 
ab$");
 
   Style.QualifierAlignment = FormatStyle::QAS_Right;
   CHECK_PARSE("QualifierAlignment: Leave", QualifierAlignment,

diff  --git a/clang/unittests/Format/FormatTest.cpp 
b/clang/unittests/Format/FormatTest.cpp
index c4fcc5506d152..333d40d481025 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -24954,105 +24954,6 @@ TEST_F(FormatTest, DisableRegions) {
                  "// clang-format on");
 }
 
-TEST_F(FormatTest, OneLineFormatOffRegex) {
-  auto Style = getLLVMStyle();
-  Style.OneLineFormatOffRegex = "// format off$";
-
-  verifyFormat(" // format off\n"
-               " int i ;\n"
-               "int j;",
-               " // format off\n"
-               " int i ;\n"
-               " int j ;",
-               Style);
-  verifyFormat("// format off?\n"
-               "int i;",
-               " // format off?\n"
-               " int i ;",
-               Style);
-  verifyFormat("f(\"// format off\");", " f(\"// format off\") ;", Style);
-
-  verifyFormat("int i;\n"
-               " // format off\n"
-               " int j ;\n"
-               "int k;",
-               " int i ;\n"
-               " // format off\n"
-               " int j ;\n"
-               " int k ;",
-               Style);
-
-  verifyFormat(" // format off\n"
-               "\n"
-               "int i;",
-               " // format off\n"
-               " \n"
-               " int i ;",
-               Style);
-
-  verifyFormat("int i;\n"
-               " int j ; // format off\n"
-               "int k;",
-               " int i ;\n"
-               " int j ; // format off\n"
-               " int k ;",
-               Style);
-
-  verifyFormat("// clang-format off\n"
-               " int i ;\n"
-               " int j ; // format off\n"
-               " int k ;\n"
-               "// clang-format on\n"
-               "f();",
-               " // clang-format off\n"
-               " int i ;\n"
-               " int j ; // format off\n"
-               " int k ;\n"
-               " // clang-format on\n"
-               " f() ;",
-               Style);
-
-  Style.OneLineFormatOffRegex = "^/\\* format off \\*/";
-  verifyFormat("int i;\n"
-               " /* format off */ int j ;\n"
-               "int k;",
-               " int i ;\n"
-               " /* format off */ int j ;\n"
-               " int k ;",
-               Style);
-  verifyFormat("f(\"/* format off */\");", " f(\"/* format off */\") ;", 
Style);
-
-  Style.AlignEscapedNewlines = FormatStyle::ENAS_DontAlign;
-  verifyFormat("#define A \\\n"
-               "  do { \\\n"
-               "  /* format off */\\\n"
-               "  f() ; \\\n"
-               "    g(); \\\n"
-               "  } while (0)",
-               "# define A\\\n"
-               " do{ \\\n"
-               "  /* format off */\\\n"
-               "  f() ; \\\n"
-               "  g() ;\\\n"
-               " } while (0 )",
-               Style);
-
-  Style.ColumnLimit = 50;
-  Style.OneLineFormatOffRegex = "^LogErrorPrint$";
-  verifyFormat(" myproject::LogErrorPrint(logger, \"Don't split me!\");\n"
-               "myproject::MyLogErrorPrinter(myLogger,\n"
-               "                             \"Split me!\");",
-               " myproject::LogErrorPrint(logger, \"Don't split me!\");\n"
-               " myproject::MyLogErrorPrinter(myLogger, \"Split me!\");",
-               Style);
-
-  Style.OneLineFormatOffRegex = "//(< clang-format off| NO_TRANSLATION)$";
-  verifyNoChange(
-      " int i ;  //< clang-format off\n"
-      " msg = sprintf(\"Long string with placeholders.\"); // NO_TRANSLATION",
-      Style);
-}
-
 TEST_F(FormatTest, DoNotCrashOnInvalidInput) {
   format("? ) =");
   verifyNoCrash("#define a\\\n /**/}");


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to