[clang] [clang-format][NFC] Simplify AlignMacroMatches (PR #164122)

Björn Schäpers via cfe-commits cfe-commits at lists.llvm.org
Sat Oct 18 13:13:33 PDT 2025


https://github.com/HazardyKnusperkeks created https://github.com/llvm/llvm-project/pull/164122

Just return early based on the SpacedRequiredBefore.

>From ff688c7e3829f769cfd20f2482e90b07e54618c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Sch=C3=A4pers?= <bjoern at hazardy.de>
Date: Sat, 18 Oct 2025 22:11:47 +0200
Subject: [PATCH] [clang-format][NFC] Simplify AlignMacroMatches

Just return early based on the SpacedRequiredBefore.
---
 clang/lib/Format/WhitespaceManager.cpp | 28 ++++++++++++--------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/clang/lib/Format/WhitespaceManager.cpp b/clang/lib/Format/WhitespaceManager.cpp
index 7348a3af8cf95..03a1e9a6bd80b 100644
--- a/clang/lib/Format/WhitespaceManager.cpp
+++ b/clang/lib/Format/WhitespaceManager.cpp
@@ -656,7 +656,6 @@ void WhitespaceManager::alignConsecutiveMacros() {
 
   auto AlignMacrosMatches = [](const Change &C) {
     const FormatToken *Current = C.Tok;
-    unsigned SpacesRequiredBefore = 1;
 
     if (Current->SpacesRequiredBefore == 0 || !Current->Previous)
       return false;
@@ -665,22 +664,21 @@ void WhitespaceManager::alignConsecutiveMacros() {
 
     // If token is a ")", skip over the parameter list, to the
     // token that precedes the "("
-    if (Current->is(tok::r_paren) && Current->MatchingParen) {
-      Current = Current->MatchingParen->Previous;
-      SpacesRequiredBefore = 0;
-    }
-
-    if (!Current || Current->isNot(tok::identifier))
-      return false;
-
-    if (!Current->Previous || Current->Previous->isNot(tok::pp_define))
+    if (const auto *MatchingParen = Current->MatchingParen;
+        Current->is(tok::r_paren) && MatchingParen) {
+      // For a macro function, 0 spaces are required between the
+      // identifier and the lparen that opens the parameter list.
+      if (MatchingParen->SpacesRequiredBefore > 0)
+        return false;
+      Current = MatchingParen->Previous;
+    } else if (Current->Next->SpacesRequiredBefore != 1) {
+      // For a simple macro, 1 space is required between the
+      // identifier and the first token of the defined value.
       return false;
+    }
 
-    // For a macro function, 0 spaces are required between the
-    // identifier and the lparen that opens the parameter list.
-    // For a simple macro, 1 space is required between the
-    // identifier and the first token of the defined value.
-    return Current->Next->SpacesRequiredBefore == SpacesRequiredBefore;
+    return Current && Current->is(tok::identifier) && Current->Previous &&
+           Current->Previous->is(tok::pp_define);
   };
 
   unsigned MinColumn = 0;



More information about the cfe-commits mailing list