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

    <tr>
        <th>Summary</th>
        <td>
            Wrong error message when capturing const object by reference
        </td>
    </tr>

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

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

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

<pre>
    When trying to create a mutable lambda with const object captured by reference and then mutate that object 
``` c++
int main() {
    const int a = 69;
    auto lambda = [&r = a](int x) mutable {
        r += x;
        return r;
 };
}
```
you got incorrect error message
```
<source>:4:11: error: cannot assign to a variable captured by copy in a non-mutable lambda
    4 |         r += x;
      |         ~ ^
```
but r is captured by reference and lambda is mutable
godbolt example: https://godbolt.org/z/sKd3bh6aM
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEU0FzozwM_TXiomnGyBDCgUPaNJdvvnPPxijgXbAztkmbHva37zikbbLT2WU8g23pSXp6lgrB9Ja5gfIRyl2m5jg435zcSQ_m53uXta47Ny8DW4z-bGyP0aH2rCKjwmmOqh0ZRzW1ncJXEwfUzoaIrv3BOqJWxzh77rA9o-cDe7aaUdkOYwqZ8JExDuoTAWIHYgtrsSzUQI9pXa6NjTgpY4E2QDVCdb1HxGve5KEQ5A7XNcgbs5qj-6gzmRNfWvvLXkG5A9ok7FuK-0HrLn76PKZS5A7f7mJfTBxnb9F_GaDafR7S_p7Ycjy7GXuXytbO-8SfvXceJw5B9fwtBuRTcLPXDPIZ5LYAuc1zkNsFmjZaWesiLtomwRSelDcXTreKaHc8o7Go0Dr7cC_mF7sCoXrCf7bg1ukXQvn8bfHtHNGjCX95GVeRTPjQYUH2rmvdGJHf1HQcOfEcYjwGkFugPdD-6rByvgfavwPtw3-dbIe1-j_rGtnVslYZN3lFohayKMtsaKoDlbnI27VSdcU6zw-b_FAIKYjEhvI6Mw0JKkSVSxJFkZertjtUcq3WmqmsqSihEDwpM67G8TSl3JkJYeam3lQVZaNqeQyX4SKy_IoXIxClWfNNwjy0cx-gEKMJMXxFiSaO3Lx4Z_v7N4GvaXKW9qV5vJu322Zmsx-bP1pk4jC3K-0moH1Kdf09HL1LeKD9pcAAtF8InBr6HQAA__-Ttz6E">