<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/142050>142050</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Bit field with constant width specifier aligment
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-format
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          EugeneZelenko
      </td>
    </tr>
</table>

<pre>
    Bit field-related options does not work for widths declared as constants/macros.

Test file:

```
#define FIELD1_WIDTH 1

class Test
{
public:
    constexpr static unsigned FIELD3_WIDTH = 2;

private:
    unsigned field1_ : FIELD1_WIDTH;
    unsigned field2_ : 10;
    unsigned field3_ : FIELD3_WIDTH;
    unsigned field4_ : 3;
};
```

I tried 19.1.1 and `main` (49d48c32e04742ebd05cbbd7dd544b1217b6d9d0)

Configuration:

```
BasedOnStyle: LLVM

BreakBeforeBraces: Allman
ColumnLimit: 100
IndentPPDirectives: AfterHash
IndentWidth: 4
LineEnding: LF
UseTab: Never

Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveAssignments: AcrossComments
AlignConsecutiveBitFields:
  Enabled: true
 AcrossEmptyLines: true
  AcrossComments: true
AlignConsecutiveDeclarations:
  Enabled: true
  AcrossEmptyLines: false
  AcrossComments: false
AlignConsecutiveMacros: AcrossEmptyLines
AlignConsecutiveShortCaseStatements:
  Enabled: true
 AcrossEmptyLines: true
  AcrossComments: true
  AlignCaseColons: false
AlignEscapedNewlines: LeftWithLastLine
AlignOperands: Align
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseExpressionOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
BitFieldColonSpacing: After
BinPackArguments: false
BinPackParameters: false
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeComma
BreakTemplateDeclarations: Yes
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 4
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: Always
FixNamespaceComments: true
MaxEmptyLinesToKeep: 1
PackConstructorInitializers: Never
PenaltyReturnTypeOnItsOwnLine: 1000
PointerAlignment: Left
SortUsingDeclarations: true
StatementMacros:
 - PyObject_HEAD
  - Q_OBJECT
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVstu6zgS_Rp6QySgKSmOF17IL1zPOLHnxncuZjYBJZZkdihSTVJx3F_fIGX5ESdBFg0EiKU6dapYjyMya0WpAEYoGaNk2mON22ozmjUlKPg_SFAvupdpvh-NhcOFAMlvDEjmgGNdO6GVxVyDxUo7vNPmBRfa4J3gbmsxh1wyAxwzi3OtrGPKWUTnFcuNtreIpIikG7CeWAKK0vYNuiOHP5IiGnEohAI8X8yW0_7z78V08wP3W2QumbXYM_jnwRiRtG4yKfKWC2PcxoW32mDrmBM5blQ4MW8JowMhiqaYomjc8tZGvDIHJ5ajU6hA_xmjKL3IqHW9htIW2iefAaIzruhrrriFRoc0B9PDj_NykXSBnRHAcX9427_tY6Y4RnekYkKhO4IRvY-HPL7PIwokHsQUMk6SPMv4gPMkjrM-7Q-yOz7kBNFhyzjRqhBlY5hv94ddGjMLfKWe3D60ES-X_31oUWMD7GUMhTYwNiwH682plBVTgVk2lVqKSri2Sp5soTgot15PhYHcideDT-HA_GB2e0T89kPmTTEi6VIomCkuVBnizxFJf1nYsMw_PsIrmDafJVNlw8qQ5aSuEUnTPAdrHzQXhQCzKgoLIZkbT5tKUaoQelWD8id4aa2p3LG9DafrYBOtLOSNzzgNW1WBH3cP9uNuJ7pq31zjx8LNfYdtN3EzxTIJ3Ds704B_15LMqtrt_WHtue19hJPpfaRpWMnQya-CfRitYNJ-Fq6zvY_3EFb9VIQzxmvw01YbN2EWnhxz0HH_swXBuI3KLEy0bKtwmf3M5qwG_gg72dEuoXC_hdsumXU-Vgdd1WCY4oehFqUKBql3qZSpKZsQfKUe4a11uwjVwtbMsAocGLsqzprzhVOo0ljq_MWuVPokVCnhc6A_6OytNmBtoP2Ww5JlIL_FrqtaN4r_hD8bYULLvuE1U031HfZ5o_IwqVfYhZJdGzrwojhNzRW-U4ATfMmqjLNrZCrlJU7r-vNcu8UNo_RUs_wgQEEygl2tWf5ynIVL32A7DcCF8Uw3hWJmH0bN6Rb1qNVJYi7RGzBX8MPoB5RfN2ea3GmzUMIJJsVfh9gtgd8Z1qE3UNX-Y_9ONvD_wv5-zPVOnUkLdEI1wf8D8T7ucCjbpSCfd--IazO9BraqjEg6F2-PrAJbsxw-EIEH9nbSjY3-N0Advj-IpL4lX9SoS2UNikm3_wmuMWqzr2GlFs6udqqbkD4JH7O1FsqfSXbNOqgJIumTNu6XFap8X9xDksdxPmqol68bvN6vsj8gd88_Zuk0KNoN_s_zavyv2WRz_l3u8VHEh9GQ9WDUH8T3STIYxFFvO4IBIaRfJPEgjxmPkiEr4mEWx3GSZPcFKXpiRAlNSEKHlNIhiW7ZfXYfwxDuBjQZ0EGEYgIVE_JWytfqVpuyJ6xtYNSPKUlITwb5CFdKSnPJVHlTaFMxhyj1l0wz8n43WVNaFBMprLMnJiecDNfRC8dkio8XULwTbnu8ULaXTWxryMMcYCZF6cvWa4wcbZ2rQ-noHNF5Kdy2yW5zXSE69xEP_25qo31JEZ2Hg_hL6uEsryP6dwAAAP__lw27PQ">