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

    <tr>
        <th>Summary</th>
        <td>
            Unexpected interaction between ColumnLimit = 0 and BWACS_MultiLine
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          semushin-s
      </td>
    </tr>
</table>

<pre>
    Let's say we have the following config
```
BasedOnStyle: WebKit
ColumnLimit: 0
BreakBeforeBraces: Custom
BraceWrapping:
  AfterControlStatement: MultiLine
```
As a result any of the following snippets do not change after formatting (as if it's ok to either wrap or not wrap the brace regardless of if being multilien):
```cpp
bool f(int b)
{
    if (b)
    {
        return true;
    }
    return false;
}
```
```cpp
bool f(int b)
{
    if (b) {
        return true;
    }
    return false;
}
```

```cpp
bool f(int b)
{
    if (b
        && true) {
        return true;
    }
 return false;
}
```

```cpp
bool f(int b)
{
    if (b
        && true)
    {
        return true;
    }
    return false;
}
```

I think the correct behaviour should be to consider control statement having any line breaks before formatting or not in such case.
If I'm not mistaken [here](https://github.com/llvm/llvm-project/blob/fb13e65acf0b7de3dd0b60b6312df07fdf9da652/clang/lib/Format/UnwrappedLineFormatter.cpp#L318) is the place where we check is statement multi line or not based on column limit only.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEVU2P4ygU_DXk8jQRhrYTH3xwumVptL3aQ2vUxxUfD5sNBgtwZ_PvVziZ7tbcZqTRRpGCKPIoileFSMmOHrEj9YnUTzux5inELuG8psn6L2kng752z5gJOyRI4goXhEm8IeQJwQTnwsX6EVTwxo6E9qSh9y_tTyKh_su_5KtDwnt4RfmHzYT2j8Gts3-2s81lflsbUZxPaELEUxQKUwEe15TDvKFC4WsUy2L9SHhPaA_Qm4zxMfgcg3vJIuOMfqv35-qyfbYef-DTJxAQMa0ug_BXCOaHUyRvlwVzAh3AhwxqEn5EEGUjMCHOIueyjrCjSGAN2Jsu4Qw5ANo8YYRLFAuEuBXYxmUPWQ4AEUcRtcOUyt7WgMRSbi58nUVPWHs73DtrtSyE9jIEB4awo_UZZFlFe3I4bSpAqUPY8T5dJj6g8omY1-ghxxUJP70vebqP7rARLt3xG_ZZuF-k8xuI_CKXDxKENYQ1NxI_xfD_oPfb7pP2XyFP1p-35lQhRlQZJE7izYY1QprC6jRILH2tgk9WYyyD4jVI381WkqA0cDGTs760OYpzArn5-LNj7n6wHtKqJlAi4b6wMPCVsMO8gbNNWZzRA6lPE0Yk9RNhxynnpYQBYQNhw2jztMq9CjNhg3Nv33--LDH8gyoTNkgXJGGDkRXHphbKUHnQyLWmsqGy4RXThh6MNq0WTc0IG5QTfiyFbPnjsLEmbPjmi30X1CVKbrMZ475cLOPPvDqWBrJpk3Bxxd-XQrskpJpQnQv2IdVm8ptKdzFkiUcIHtQWh-BKHkLw7rrf6Y7rlrdih1114E3LD5Sz3dTxxjww3iCvVXXkja7wWKujObaqVm1tcGc7RllNq6quKKec7duHSiqm66bl-FBxTR4ozsK6fZFtH-K4symt2FWMU97unJDo0vYeMObxAhtKGCvPQ-w2reU6JvJAnU05fZTJNjvsvnn8d0GVUYP1GaNQ2QYPEvMF0cOn5AfCn4CC8BpOr_3jy9_vsb1bo-t--t43oomw4X6St479FwAA__9rwRZ_">