[clang] 9af0386 - [clang-format] Revert e9e6e3b34a8e
via cfe-commits
cfe-commits at lists.llvm.org
Sun Jan 17 03:09:34 PST 2021
Author: mydeveloperday
Date: 2021-01-17T11:07:31Z
New Revision: 9af03864df746aa9a9cf3573da952ce6c5d902cd
URL: https://github.com/llvm/llvm-project/commit/9af03864df746aa9a9cf3573da952ce6c5d902cd
DIFF: https://github.com/llvm/llvm-project/commit/9af03864df746aa9a9cf3573da952ce6c5d902cd.diff
LOG: [clang-format] Revert e9e6e3b34a8e
Reverting {D92753} due to issues with #pragma indentation in #ifdef/endif structure
Added:
Modified:
clang/docs/ClangFormatStyleOptions.rst
clang/include/clang/Format/Format.h
clang/lib/Format/ContinuationIndenter.cpp
clang/lib/Format/Format.cpp
clang/lib/Format/UnwrappedLineFormatter.cpp
clang/lib/Format/UnwrappedLineParser.cpp
clang/lib/Format/UnwrappedLineParser.h
clang/unittests/Format/FormatTest.cpp
Removed:
################################################################################
diff --git a/clang/docs/ClangFormatStyleOptions.rst b/clang/docs/ClangFormatStyleOptions.rst
index c58bb1af7ae6..8eee6187d0c6 100644
--- a/clang/docs/ClangFormatStyleOptions.rst
+++ b/clang/docs/ClangFormatStyleOptions.rst
@@ -2181,30 +2181,6 @@ the configuration (without a prefix: ``Auto``).
-**IndentPragmas** (``bool``)
- Indent pragmas
-
- When ``false``, pragmas are flushed left or follow IndentPPDirectives.
- When ``true``, pragmas are indented to the current scope level.
-
- .. code-block:: c++
-
- false: true:
- #pragma once vs #pragma once
- void foo() { void foo() {
- #pragma omp simd #pragma omp simd
- for (int i=0;i<10;i++) { for (int i=0;i<10;i++) {
- #pragma omp simd #pragma omp simd
- for (int i=0;i<10;i++) { for (int i=0;i<10;i++) {
- } }
- #if 1 #if 1
- #pragma omp simd #pragma omp simd
- for (int i=0;i<10;i++) { for (int i=0;i<10;i++) {
- } }
- #endif #endif
- } }
- } }
-
**IndentRequires** (``bool``)
Indent the requires clause in a template
diff --git a/clang/include/clang/Format/Format.h b/clang/include/clang/Format/Format.h
index c6a9818a8940..6b3fb8164a28 100644
--- a/clang/include/clang/Format/Format.h
+++ b/clang/include/clang/Format/Format.h
@@ -1792,29 +1792,6 @@ struct FormatStyle {
/// \endcode
bool IndentGotoLabels;
- /// Indent pragmas
- ///
- /// When ``false``, pragmas are flushed left or follow IndentPPDirectives.
- /// When ``true``, pragmas are indented to the current scope level.
- /// \code
- /// false: true:
- /// #pragma once vs #pragma once
- /// void foo() { void foo() {
- /// #pragma omp simd #pragma omp simd
- /// for (int i=0;i<10;i++) { for (int i=0;i<10;i++) {
- /// #pragma omp simd #pragma omp simd
- /// for (int i=0;i<10;i++) { for (int i=0;i<10;i++) {
- /// } }
- /// #if 1 #if 1
- /// #pragma omp simd #pragma omp simd
- /// for (int i=0;i<10;i++) { for (int i=0;i<10;i++) {
- /// } }
- /// #endif #endif
- /// } }
- /// } }
- /// \endcode
- bool IndentPragmas;
-
/// Options for indenting preprocessor directives.
enum PPDirectiveIndentStyle : unsigned char {
/// Does not indent any directives.
@@ -2790,7 +2767,6 @@ struct FormatStyle {
IndentCaseLabels == R.IndentCaseLabels &&
IndentCaseBlocks == R.IndentCaseBlocks &&
IndentGotoLabels == R.IndentGotoLabels &&
- IndentPragmas == R.IndentPragmas &&
IndentPPDirectives == R.IndentPPDirectives &&
IndentExternBlock == R.IndentExternBlock &&
IndentRequires == R.IndentRequires && IndentWidth == R.IndentWidth &&
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp
index 9e15c87509ac..9db42b6c4a70 100644
--- a/clang/lib/Format/ContinuationIndenter.cpp
+++ b/clang/lib/Format/ContinuationIndenter.cpp
@@ -589,12 +589,6 @@ void ContinuationIndenter::addTokenOnCurrentLine(LineState &State, bool DryRun,
State.Line->Type == LT_ImportStatement)) {
Spaces += State.FirstIndent;
- bool isPragmaLine =
- State.Line->First->startsSequence(tok::hash, tok::pp_pragma);
- // If indenting pragmas remove the extra space for the #.
- if (Style.IndentPragmas && isPragmaLine)
- Spaces--;
-
// For preprocessor indent with tabs, State.Column will be 1 because of the
// hash. This causes second-level indents onward to have an extra space
// after the tabs. We avoid this misalignment by subtracting 1 from the
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index fc62a3419d48..1207ac2dcc2b 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -557,7 +557,6 @@ template <> struct MappingTraits<FormatStyle> {
IO.mapOptional("IndentCaseLabels", Style.IndentCaseLabels);
IO.mapOptional("IndentCaseBlocks", Style.IndentCaseBlocks);
IO.mapOptional("IndentGotoLabels", Style.IndentGotoLabels);
- IO.mapOptional("IndentPragmas", Style.IndentPragmas);
IO.mapOptional("IndentPPDirectives", Style.IndentPPDirectives);
IO.mapOptional("IndentExternBlock", Style.IndentExternBlock);
IO.mapOptional("IndentRequires", Style.IndentRequires);
@@ -926,7 +925,6 @@ FormatStyle getLLVMStyle(FormatStyle::LanguageKind Language) {
LLVMStyle.IndentCaseLabels = false;
LLVMStyle.IndentCaseBlocks = false;
LLVMStyle.IndentGotoLabels = true;
- LLVMStyle.IndentPragmas = false;
LLVMStyle.IndentPPDirectives = FormatStyle::PPDIS_None;
LLVMStyle.IndentRequires = false;
LLVMStyle.IndentWrappedFunctionNames = false;
diff --git a/clang/lib/Format/UnwrappedLineFormatter.cpp b/clang/lib/Format/UnwrappedLineFormatter.cpp
index e39ee26950bc..d8f718306a45 100644
--- a/clang/lib/Format/UnwrappedLineFormatter.cpp
+++ b/clang/lib/Format/UnwrappedLineFormatter.cpp
@@ -1237,21 +1237,10 @@ void UnwrappedLineFormatter::formatFirstToken(
}
// Preprocessor directives get indented before the hash only if specified
- if (Line.Type == LT_PreprocessorDirective ||
- Line.Type == LT_ImportStatement) {
- switch (Style.IndentPPDirectives) {
- case FormatStyle::PPDIS_AfterHash:
- Indent = 0;
- break;
- case FormatStyle::PPDIS_None:
- case FormatStyle::PPDIS_BeforeHash: {
- // If we want to indent pragmas.
- bool isPragmaLine = RootToken.startsSequence(tok::hash, tok::pp_pragma);
- if (!Style.IndentPragmas && isPragmaLine)
- Indent = 0;
- } break;
- }
- }
+ if (Style.IndentPPDirectives != FormatStyle::PPDIS_BeforeHash &&
+ (Line.Type == LT_PreprocessorDirective ||
+ Line.Type == LT_ImportStatement))
+ Indent = 0;
Whitespaces->replaceWhitespace(RootToken, Newlines, Indent, Indent,
/*IsAligned=*/false,
diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp
index 99b8c28dca2b..f689a6361a3a 100644
--- a/clang/lib/Format/UnwrappedLineParser.cpp
+++ b/clang/lib/Format/UnwrappedLineParser.cpp
@@ -714,7 +714,7 @@ void UnwrappedLineParser::parseChildBlock() {
nextToken();
}
-void UnwrappedLineParser::parsePPDirective(unsigned Level) {
+void UnwrappedLineParser::parsePPDirective() {
assert(FormatTok->Tok.is(tok::hash) && "'#' expected");
ScopedMacroState MacroState(*Line, Tokens, FormatTok);
@@ -745,17 +745,6 @@ void UnwrappedLineParser::parsePPDirective(unsigned Level) {
case tok::pp_endif:
parsePPEndIf();
break;
- case tok::pp_pragma: {
- bool IndentPPDirectives =
- Style.IndentPPDirectives != FormatStyle::PPDIS_None;
- unsigned CurrentLevel = Line->Level;
- Line->Level =
- Style.IndentPragmas
- ? (IndentPPDirectives ? (Level - (PPBranchLevel + 1)) : Level)
- : CurrentLevel;
- parsePPUnknown();
- Line->Level = CurrentLevel;
- } break;
default:
parsePPUnknown();
break;
@@ -3184,7 +3173,7 @@ void UnwrappedLineParser::readToken(int LevelDifference) {
PPBranchLevel > 0)
Line->Level += PPBranchLevel;
flushComments(isOnNewLine(*FormatTok));
- parsePPDirective(Line->Level);
+ parsePPDirective();
}
while (FormatTok->getType() == TT_ConflictStart ||
FormatTok->getType() == TT_ConflictEnd ||
diff --git a/clang/lib/Format/UnwrappedLineParser.h b/clang/lib/Format/UnwrappedLineParser.h
index 30604c037986..02b328cb72de 100644
--- a/clang/lib/Format/UnwrappedLineParser.h
+++ b/clang/lib/Format/UnwrappedLineParser.h
@@ -88,7 +88,7 @@ class UnwrappedLineParser {
void parseBlock(bool MustBeDeclaration, bool AddLevel = true,
bool MunchSemi = true);
void parseChildBlock();
- void parsePPDirective(unsigned Level);
+ void parsePPDirective();
void parsePPDefine();
void parsePPIf(bool IfDef);
void parsePPElIf();
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index bdf4abb26c7e..acfd229e200b 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -14282,7 +14282,6 @@ TEST_F(FormatTest, ParsesConfigurationBools) {
CHECK_PARSE_BOOL(IndentCaseLabels);
CHECK_PARSE_BOOL(IndentCaseBlocks);
CHECK_PARSE_BOOL(IndentGotoLabels);
- CHECK_PARSE_BOOL(IndentPragmas);
CHECK_PARSE_BOOL(IndentRequires);
CHECK_PARSE_BOOL(IndentWrappedFunctionNames);
CHECK_PARSE_BOOL(KeepEmptyLinesAtTheStartOfBlocks);
@@ -17739,129 +17738,6 @@ TEST_F(FormatTest, ConceptsAndRequires) {
"struct constant;",
Style);
}
-
-TEST_F(FormatTest, IndentPragmas) {
- FormatStyle Style = getLLVMStyle();
- Style.IndentPPDirectives = FormatStyle::PPDIS_None;
-
- Style.IndentPragmas = false;
- verifyFormat("#pragma once", Style);
- verifyFormat("#pragma omp simd\n"
- "for (int i = 0; i < 10; i++) {\n"
- "}",
- Style);
- verifyFormat("void foo() {\n"
- "#pragma omp simd\n"
- " for (int i = 0; i < 10; i++) {\n"
- " }\n"
- "}",
- Style);
- verifyFormat("void foo() {\n"
- "// outer loop\n"
- "#pragma omp simd\n"
- " for (int k = 0; k < 10; k++) {\n"
- "// inner loop\n"
- "#pragma omp simd\n"
- " for (int j = 0; j < 10; j++) {\n"
- " }\n"
- " }\n"
- "}",
- Style);
-
- verifyFormat("void foo() {\n"
- "// outer loop\n"
- "#if 1\n"
- "#pragma omp simd\n"
- " for (int k = 0; k < 10; k++) {\n"
- "// inner loop\n"
- "#pragma omp simd\n"
- " for (int j = 0; j < 10; j++) {\n"
- " }\n"
- " }\n"
- "#endif\n"
- "}",
- Style);
-
- Style.IndentPragmas = true;
- verifyFormat("#pragma once", Style);
- verifyFormat("#pragma omp simd\n"
- "for (int i = 0; i < 10; i++) {\n"
- "}",
- Style);
- verifyFormat("void foo() {\n"
- " #pragma omp simd\n"
- " for (int i = 0; i < 10; i++) {\n"
- " }\n"
- "}",
- Style);
- verifyFormat("void foo() {\n"
- " #pragma omp simd\n"
- " for (int i = 0; i < 10; i++) {\n"
- " #pragma omp simd\n"
- " for (int j = 0; j < 10; j++) {\n"
- " }\n"
- " }\n"
- "}",
- Style);
-
- verifyFormat("void foo() {\n"
- " #pragma omp simd\n"
- " for (...) {\n"
- " #pragma omp simd\n"
- " for (...) {\n"
- " }\n"
- " }\n"
- "}",
- Style);
-
- Style.IndentPPDirectives = FormatStyle::PPDIS_AfterHash;
-
- verifyFormat("void foo() {\n"
- "# pragma omp simd\n"
- " for (int i = 0; i < 10; i++) {\n"
- "# pragma omp simd\n"
- " for (int j = 0; j < 10; j++) {\n"
- " }\n"
- " }\n"
- "}",
- Style);
-
- verifyFormat("void foo() {\n"
- "#if 1\n"
- "# pragma omp simd\n"
- " for (int k = 0; k < 10; k++) {\n"
- "# pragma omp simd\n"
- " for (int j = 0; j < 10; j++) {\n"
- " }\n"
- " }\n"
- "#endif\n"
- "}",
- Style);
-
- Style.IndentPPDirectives = FormatStyle::PPDIS_BeforeHash;
- EXPECT_EQ("void foo() {\n"
- "#if 1\n"
- " #pragma omp simd\n"
- " for (int k = 0; k < 10; k++) {\n"
- " #pragma omp simd\n"
- " for (int j = 0; j < 10; j++) {\n"
- " }\n"
- " }\n"
- "#endif\n"
- "}",
- format("void foo() {\n"
- "#if 1\n"
- " #pragma omp simd\n"
- " for (int k = 0; k < 10; k++) {\n"
- " #pragma omp simd\n"
- " for (int j = 0; j < 10; j++) {\n"
- " }\n"
- " }\n"
- "#endif\n"
- "}",
- Style));
-}
-
} // namespace
} // namespace format
} // namespace clang
More information about the cfe-commits
mailing list