<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/109358>109358</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-format mis-annotates pointer/reference in range-based `for` loops
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
owenca
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
owenca
</td>
</tr>
</table>
<pre>
This is split from #60146 and reported by @jeremyong.
> I'm seeing this also with an even simpler repro:
>
> ```c++
> for (int i = 0; Foo& foo : foos)
> ```
>
> turns into
>
> ```c++
> for (int i = 0; Foo & foo : foos)
> ```
>
> even with `PointerAlignment: Left`. I am assuming that in the presence of scoped declaration statements, subsequent `&` operators are parsed as bitwise-and operators.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyskkFvo0oMxz-NuViJJoaQcuDQvr5Ild7hHfYLGDBkqmHMjodW_fYrkqjbQ0-rlSyMDP7b_unPZn6KIi0cn4BI3yX2DERwfC54zRdN7a1WdDp8tD8u3tAb2hJ8xjHpjEBl7Q5VjRwHTLJoyjJg94FQuVdJMn9onPbgnsE93p_lv_gCdJrRRHycMG-qHEzx3ecLckR5k4jm5yVI2kSTQvml-8tb7W7RAz1t8fll1IRADz5m9AjlMzoon_CsClTjqIpQPm7ZgJpv9L4bltcUDX3M-pdWwT_f5Uroigtq97_6mCU9Bj_FWWLe5P6TMUPt9viCPCObrfONNWf0EfNFcEliEntBHdF6XWTAQfrAibPXiJY5yyZnQP-grZ3Jz1Vivi5GNdQOdZHEWZMhJ8GFk8mAbNj5_O5NdpsnPv_ZF0NbDk3ZcCHt4UT1qTkd6qa4tENZNTR2p2qr8IFKqh4qGlnGrj_RUBe-JUeVa8i5w5GqZi_ONd2RmZpj3xyog8rJzD7sQ3ib95qmwput0h5cUx4fisCdBLubvA8cp92oaeZ8t3pqt75dt04GlQvesv1Wyj4Hab924extxzHqRshwueEHOicZJV2R-oiJ4yS7jjcmULtR04YsqC5WrCm0l5wX23xNZ6Dz5PNl7fa9zkDnbfY97Zakr9JnoPP1JAM63696a-lXAAAA___pByF0">