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

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Extended inline asm colons always split across multiple lines with ColumnLimit: 0
        </td>
    </tr>

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

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

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

<pre>
    When using the extended inline asm extension supported by gcc and clang, the colons used to separate parameters are not allowed to be compact when using `ColumnLimit: 0`.

The following example stays the same when using a large enough limit, like `ColumnLimit: 80`:
```c
asm("leal (%0,%0,4),%0" : "=r"(n) : "0"(n));
```

However, when using `ColumnLimit: 0`, the parameters are always split across multiple lines:
```c
asm("leal (%0,%0,4),%0"
    : "=r"(n)
    : "0"(n));
```

This always occurs, even if the parameters are empty, for example:
```c
asm("dsb sy" : : : "memory");
```
Which, under `ColumnLimit: 0`, becomes:
```c
asm("dsb sy"
    :
    :
    : "memory");
```

This definitely looks suboptimal.

Reproduced on trunk (e4d3e88802390a51ae62ade18e48c1a65a862d12)

(I'm not sure if a configuration is required for this, I think all that is required is some extra LineJoiner logic, but I haven't checked)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVMuO2zYU_RpqczGGRFmyvNAiGdfoFFkVAbK-Iq8l1nyofIzjvy8o2_PqpJMCAWTxYd7HOYc6GIIaLVHPms-s2RWY4uR8789GkS4GJ8_9t4kspKDsCHEioO-RrCQJymplCTCYy15QzkJI8-x8JAnDGUYhAK0EodGOjN8v8cJpZwOkQBKig0AzeowEeTAUyQdAT2BdBNTanS7HhhxoZhQRTs_9sLa8dzoZ-0UZFVn9CUrWlitW7lj56fL-OhEcXE6UA-g7mlkThIjnsLQT0NDLlAga_UhA1qVxAr0k5veg1ZHeqdflgqy-Fsvz5RGXNQbDeMc414QalmlTMn5_HdaMb59WHHI-xjmrdz4PvLOMb2-75fNWfurPbyq-xPy7O9Ej-dz2h2TdZHlDP-pTZijMWkVA4V0IYJKOKrOXdQ-_BvQlBADeR_-vv_8PDV8nFW5AnBDJhwyWHsmCOrwHmswcz_nMwfnbVfkYpgwDhPOTgLcf54aM8-el4R92-m1SYsolk5Xk_0OjgYQzP8P6UzuvuPvx4mc7fcGppIOyKpI-g3buGCCkwc1RGdSvvr0_afZOJkESnIXokz3m-0BrWVPXdSWvtyU2FVLLUVLV0boTFbYNdi2XFX_S__rm3QPjG7NYQ0iesooIwtmDGpPHmP1HBfD0d1Ke5KJinNSi-kOe2WO2FIgTxlcHVYDgzGJtHuGLsvSHU5Y8aDcqsbCfIjzAhI9kGd9EEBOJI0nGt4Xsa7mtt1hQX7Xdmnd1VZXF1A91ud62A6fmULWiqpCkEFysK-oGudnUhep5yeuyqTZlyZuqXLXYdq1oSz4Mh25oka1LMqj0SutHs3J-LFQIifqWb5p1oXEgHRbf5nxx2LuD8wZjlrHZFb7PYXdDGgNbl1qFGJ4TRRX14vmvApsd_PaOu18d-2NLgJOKE7y9wEXyup9inJfLy_eM70cVpzSshDOM73NT1-Fu9u4vEpHx_QI1ML5f0P4TAAD__yi8-sk">