<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">