<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/116808>116808</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang][C++] Better error message for defining a friend function in a local class defintion
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dawmd
</td>
</tr>
</table>
<pre>
Reproducer:
```cpp
void f() {
struct A {
friend void foo() {}
};
}
```
compiled with `--std=gnu++23`.
---
clang-19.1.0:
```
<source>:3:21: error: no matching function found in local scope
3 | friend void foo() {}
| ^~~
1 error generated.
```
gcc-14-2:
```
<source>: In function 'void f()':
<source>:3:21: error: cannot define friend function 'foo' in a local class definition
3 | friend void foo() {}
| ^~~
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysk8uO4yoQhp-mvEG2oCBxvPAi6XSksz1vgAE7jGywAHdrNv3sI1-6454ZzUUaFMWozF_U_7lKxmg7Z0wNhwscrpmc0t2HWsvXQWeN11_r_80YvJ6UCcDPQK9A3_-PdP2pcVwjL95q0gKeACsC5WWNEkJITGFSiZw_R-fVBmucJqvU-524vG4n5x3fZB_Rj9v3JSk_jLY3mrzadCdwpHkekwZ-7dwEeAG8IIcjLfaaPM8_peil63JWFaygD8PfXcafop-CMsCfgZ858DMy4GdiQvAzJuI8GWRSd-s60k5OJesdaf3kNLGO9F7JnkTlR_OAwQmUT-QvsCxrr9kvODy_va0H2VoW6YwzQSaji18Q7JTKmcjxD62T_9zDH2C57wDA8pHlt8SUdM4nok1rnXm3v0-9UChnfHIDqHoZ46qw86l_wXLH7cN5pmuuK17JzNSs5EjxKI6Y3euqpCdelvLUSMoaJXTL2vJkGmEq0YpTk9kaKQrGWMUElgILI1CW2AitqDg2jIOgZpC2L_r-ZSh86DIb42Rqxo4nesp62Zg-LrOJuHQmIM5jGupZkDdTF0HQ3sYUHymSTf0y0E-L4nCdt2v7w-FKLiYlE7amGEyMsjOk9WEj6Toif-D_c-rzq2wKfX1PaYzzx8Yb4K2z6T41hfID4G2uanvkY_BfjEqAt8VlBLxtRl9q_BYAAP__HdVEFw">