<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzNVc1u2zAMfhr7QiRw5Fh2Dj40DbpLixUYsLts0bZaWQokOV339KOcdG2Hdi26QwcIkmlSFMmPP42V9_UXdUADrTWd6pP8LMl2SXaW8Oy0ZnIrPMqv5lu410gycHn5_erIubbKBHRnWvVmRBMi90pJSXIvKTruwkgIg_IwKqNG9RMlKLOfAiSscig0WSMR9sLTqyBAi7GRAoSHvUOpWhEQgiVGN5k2KGvoNulDUF30Q6r4L2Gb17whMXooKbZJsaMPcoBoDiJh5_BANHQfknKblFEkKqM13wZI8u3xs7PuI5roOq0X9Pk7FdrhY8ZFGhqK3i2pg8h5Pf7XDg_KTh4O6DzFyoOlyGlh-gW5NIoAvTjgHNLOam3vlOnBoZ_0DJG9hdlznqmONohw0nm0Pj41m9pa57AND6J0nFjGhqNuhx06NC16aDA-IUIQ7UCYE7pR4CCcEo1GMGLE2c3zqOqppYtRKLNgGaO1YotSFhlnLV_iD4TFwh8TdtcpUhLQh2W730czfmfGZ-THU0X_YXac23FUAVjBKtZI3q6brlgLtmqzrpJNl2Wy4VhmG8bajHUCRkHFShdaO0Q4AzRUyc_xF5pqmnqIf1qSr8K4XuCGl3JTirdgfD96f4_5J2L3lmHvQy6VdS43-UakYgqDdfV4OzmJN-nkdD2EsJ8jzy5o9SoMU7Ns7UiE1oeHY7F39oYAI1J5PxFW7KLIq3WeDrXkZcWr9QqLoqoY51254tmaZ3m5LignylSLBrWvo3OMNVNP-1yslCNPUH7867CnfuLnPs0oHum_W6nqU_oUWZVXxWrZ8UJiu-J8JbkoKbjrDCnN9DLqWVrXp66eVZK9npha-eAfmTR9aKYhnpw6BfRkblBBz5xn7hU7-HMeAk05angwWGMnml5AiTDQuDrONE_Ie0Xl4wMNtVk-DNR-R3EPQ2zBNB-DEppGpPPp7HA9e_sLZ_0uAA>53843</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] PointerAlignment is not honoured within lambdas inside statement that may have initializers
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            clang-format,
            regression
      </td>
    </tr>

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

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

<pre>
    Given config:
```
BasedOnStyle: LLVM
PointerAlignment: Middle
```

and this minimized input (real code passed a lambda as predicate to a function in the if condition):
```
if ([](int & a, int & b) {}())
  ;
for ([](int & a, int & b) {}();;)
  ;
switch ([](int & a, int & b) {}()) { break; }
```

Previous versions of clang-format gave the following result (ok for `if` and `switch`, incorrect for `for`, note the references being attached to the variable name), `clang-format-main-20220212-7d5062c6.exe --style=file test.cpp`:

```
if ([](int & a, int & b) {}())
  ;
for ([](int &a, int &b) {}();;)
  ;
switch ([](int & a, int & b) {}()) { break; }
```

Commit 25282bd6c4bf54a21c0f8dbf00db6e70922c02fa made it coherent but incorrect for all cases:
`clang-format-main-20220214-e967d97a.exe --style=file test.cpp`
```
if ([](int &a, int &b) {}())
  ;
for ([](int &a, int &b) {}();;)
  ;
switch ([](int &a, int &b) {}()) { break; }
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVUtv3CAQ_jX2ZeSVFz_We_AhD6WXRI1UqXcMY5sEwwrwpumv7-DdpNsqaaJcUgmBYYZ5fcPnzsrH9ovaowFhTa-GpDhL8sskP0vq_DiW7Tn3KL-ab-FRI-nA9fX3m4Pk1ioT0J1pNZgJTYjSGyUl6b1k6DBzIyGMysOkjJrUT5SgzG4OkLDGIdcUjUTYcU9egYPmUyc5cA87h1IJHhCCJUE_GxGUNXSb7CGoPuYhVTxL2Pa1bEiNHCXVeVJd0gclQPsaeMIu4GnT0X1INufJJqpEYzSW2wBJcX747K37iCW6TuMFe_5BBTF-LLi4h46qd0_mIEper_-tw72ys4c9Ok-18mCpcpqbIaOUJh5g4HtcStpbre2DMgM49LNeILL3sGRe56qnCSKctB6ij66WUIV1DkV4UqXlKDI2HGw77NGhEeihw-iCh8DFSJgTulFhz53inUYwfMIlzYto6jTSbOLKZCxnNNYs28gqr5moV_gDIcv8oWEve0VGAvqwErtdDOO5Mz6jP04N_YfdcWGnSQVgFWtYJ2tRdn1VcrYWed_Irs9z2dW4ybeMiZz1HCZOj5UuCDtGOAN09JL_xJ9retPEIf70Sb4KY5nhtt7I7Ya_BeP70ft3zT8Ru7cCex9yqWwLuS22PA0qaGzJy2l5ySP8zdRA_EtPEUZr7Ey8ChTiSER6YFtPMXlFwPpAdLvoh5GIYeKPMEZyIOYOimsib-fT2el2DGG34MuuaAxkbO5Wwk600Xr_tGQ7Z--oLWirvJ-pI9hVVTRlkY4tq5tyk_dF17Cml7JgWJfNuuqQNRVHUaaad6h9TC5hrJsHmhdKoE48Tfb51OFArOWXvwGjGqSqPbZYlTdFU61XfV1JFOu6XsuabwiAMkdqRb2Ksa6sG1LXLmGTN09CrXzwv4X0h6JqIh5Dmu5nJ_Hu6IzPYbSuPR6mS7rtkusv7vEZlg">