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

    <tr>
        <th>Summary</th>
        <td>
            clang-format does not honor ColumnLimit when aligning assignments
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    I cannot seem to configure .clang-format to honor a ColumnWidth of 132 when also aligning assignments. Even when the penalty for excess characters is maximized (I even tried setting every other penalty to zero with the same results).

Consider the following .clang-format:

```
Language: Cpp
BasedOnStyle: LLVM
AlignConsecutiveAssignments: Consecutive
ColumnLimit: 132
IndentWidth: 4
PenaltyExcessCharacter: 10000000
Standard: Cpp11
TabWidth: 4
```

and the following obfuscated code:

```
int main(void)
{

    // code ...

    I32Tmp = AAAAAAAAAAAAAAAAAAA((INT32) BBBBBBBBBBBBBBBBBBBBBBBB()->CCCCCCCCCCCCCCCCCCCCCCCC[index][typeindex],
                                 (INT32) BBBBBBBBBBBBBBBBBBBBBBBB()->CCCCCCCCCCCCCCCCCCCCCCCC[index][typeindex],
                                 (INT32) BBBBBBBBBBBBBBBBBBBBBBBB()->DDDDDDDDDDDDDDDDDDDDDDDDDDD[index][typeindex],
                                 (INT32) BBBBBBBBBBBBBBBBBBBBBBBB()->DDDDDDDDDDDDDDDDDDDDDDDDDDD[index][typeindex],
                                 VariableIn);
    I32Tmp = MIN(I32Tmp, (INT32) UINT8_MAX);
    OutVarThatWillCauseAlign = (UINT8) I32Tmp;

    return OutVarThatWillCauseAlign;
}
```

Executing clang-format (both official version 14 and master built from source) gives:

```
int main(void) {

    // code ...

    I32Tmp                   = AAAAAAAAAAAAAAAAAAA((INT32)BBBBBBBBBBBBBBBBBBBBBBBB()->CCCCCCCCCCCCCCCCCCCCCCCC[index][typeindex],
                                                   (INT32)BBBBBBBBBBBBBBBBBBBBBBBB()->CCCCCCCCCCCCCCCCCCCCCCCC[index][typeindex],
                                                   (INT32)BBBBBBBBBBBBBBBBBBBBBBBB()->DDDDDDDDDDDDDDDDDDDDDDDDDDD[index][typeindex],
                                                   (INT32)BBBBBBBBBBBBBBBBBBBBBBBB()->DDDDDDDDDDDDDDDDDDDDDDDDDDD[index][typeindex], VariableIn);
    I32Tmp                   = MIN(I32Tmp, (INT32)UINT8_MAX);
    OutVarThatWillCauseAlign = (UINT8)I32Tmp;

    return OutVarThatWillCauseAlign;
}
                                                                                                                                   |
                                                                                                                                   | <- This is column 132
```

Is it possible to achieve what I'm asking for here? I have discovered that if I lower the ColumnWidth to 127, then clang-format respects the maximum width and choses another format (which no longer extends over 132 characters).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzdV9tu4zYQ_Rr5ZRDDluTbgx58SQADyW6Bdbd9KyhqJLGlSIOk4ni_vkPKiWMncds0xWI7MGReZoaHI87oMNfFPlsDZ0ppBxaxAaeBa1WKqjUIfS6Zqq5KbRrm_FStlTbAYKll26hfROFq0CUMkxh2NSpg0mp6iEoJVQGzlloNKmf7cH1P80HJ1QhbVEy6PZBrwAeO1gKvmWHcobEgLDTsQTTiGxYQxdM1oLd2RlDfonPeOw2ZPWjyZp7cEcRvaDTsBAHz61jWIBi0rXQ2imf9aLCKBvPuudTKioKsvWKppdQ77_dk01Eyf24SjQeHX-jekmLLKiQtWG633eCCWSw-qy9uL8PE7e3Xu25m7gPjV0XeOnGP82N8gofjzCNAH-VbioPH4aPcja9VQTYh-n487UZ_6mJwHaK5fAxmMBx00ul9cUwVzBQH0MNhN7xh-bnHs912TzI-C5jOy9Zy5ujdcF3g5ZAJ5ejdCkVv9V6Lgt7JQW2yeG4FJFF8Q7_gE_r9_vn0Ook3zRaiZAXzl0L-_cH5tKGgxTNYvCFBbXYVJdfLNyQaLQTF-yEarajp9lt86sbLI5qL8qMiWb0t_zswX5kRLJe4Vv5MJotXD9rd-pMHHQbI9ckOfqbW9Le7-a_n9p9bR843NaOUlXLJWouhEgSP5CEYeg8Hv8mLTDDoWqPedHS0mKwuZO71Q6gulLEnZZ0Q5DrU8VJwwSRQXbVCKxim4JO9YZbqCOStkA5KoxuwujUcPeKKapX9pwkP7871V47Q38n-75tyF8_9Dw3tP87I74TuryvBK8Au14Z_XRo-rjK8I-ofLdHk_Sfgo4WwUKyXV7CpReCdPHCuI9d6tZKuSdXBVhN_o3PiWSfjtSBCSgSXKuo6iicNsd8_fK31DJcoKtGiG1hDzUipEJZrqrLomRTpi5JmiEwdqOhzck2uh_HEHyfnqfNJ4SZau0XubDAKfLltiPl6M1-3ea0tWmp2FPlY7Xe14DUoTUuqCj3_dqgKCx5SoPJHJu4pc6_IkmKWzFjPCScxO8FQaFrCXx66m8Ezxvp4IXh5F-i1Rma1c9vw5QiFvyK-3uZ9rhvqSHn_-He1Nfp32iN1hbUtfWvim9E4TdNenaU8TZNxPuGjcZywMicZJOmIp0nCi1Ex7kmWo7QZZXgUxwp3EFxQm_K8J7J4EMeDyWA6jNPRMO0zNuPTdBqXBcMJL5MoHSB9t2Tf4-hrU_VMFiDlbWVpUgpL15qnyW5_iGE58s9aV2uTEUnGuu2FlbOA_E_S7qXK">