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

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Declaring multiple std::functions taking references/pointers on one line causes PointerAlignment: Left to misbehave
        </td>
    </tr>

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

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

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

<pre>
    When declaring a single std::function, `clang-format`'s `PointerAlignment` appears to behave as expected.

When declaring two or more of them in one declaration, `clang-format` drops the space between the `*` or `&` and the parameter name.

Minimal example:
```
$ cat functions.cpp
std::function<void(int& a)> callback1;
std::function<void(int& a)> callback2, callback3;
std::function<void(int* a)> callback4;
std::function<void(int* a)> callback5, callback6;

$ clang-format functions.cpp --style='{PointerAlignment: Left}'
std::function<void(int& a)> callback1;
std::function<void(int&a)> callback2, callback3;
std::function<void(int* a)> callback4;
std::function<void(int*a)> callback5, callback6;
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVE1v3CAQ_TX4MtoVi7_igw-bbHNqpd56xvbYpsGAACfNv-_g7aZJ00hRq0qVEHg8w5s3D4bODo_tlxkNDNhr6ZWZQEKgRSOEOLD8SGNcTR-VNUzcAKs4BZppN1q_yEgmE3VIvz9bZSL6o1aTWdAkF0jnUPoA0UKHs7xHkAHwm8M-4rBn_MT48Tz_QiI-WLAeFusR7AhxxgWUAWvwR5B8mxAM3rqQ9kBwskdKHR-Q4NOfjfAxRRH8ZlQbUTNsbkfIC1IZYGh9wfCTMmqRmujLxWlM0py9BHIeZ1MU0MsIF9HCvnfu7HotaH5zb9XAxBVJR0xAMtGw_AMBaN3J_u7A8us_3SuSOhcjfzfQ8RVQ8Rd7y-ckqiegZ1I9O7uXmsFuF-JjEvpEV4zV168uWH6EjzhGVm8B_17i_0Hh9wp8uZQZtoeqKg6VqAueDW0-NHkjs6iixpaV1y96pzzB6akFl1VH5X73DlBvybsU4nFEj6bHwMStOx9PoCbd-lQrmnq5Bgzw1tGlh2FR4fw2ZKvX7RyjCymduKUxqTiv3b63Cxla31-WnfP2Kz0iZKoQ1i1_WTd1nc1t0R1GUYsrzgcuryQvyqbCYazrGoei6apMyw51SMUzIQw-wAZB31R_plrBheCNqHguyoLvDzXNUiAfulKKWrKC4yKV3icee-unzLcbpW6dAjm1CjH8dMoQqGbctE74co2z9W3op-hdtmVuN-bfAf0xutY">