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

    <tr>
        <th>Summary</th>
        <td>
            Wrong processing of overloaded set within requires-expression
        </td>
    </tr>

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

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

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

<pre>
    This program
```
void f();
void f(int);

template<typename T>
concept C = sizeof(T) == 42;

// accepted by Clang, by why?
static_assert( requires {{ &f } -> C;} );
```
looks ill formed because `&f` is an address of overloaded function. And the program is rejected by GCC and MSVC, but Clang accepts it. Online demo: https://gcc.godbolt.org/z/z8qroqYq6
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcUsuSmzoQ_Zpm02UXSAyPBYsxHu7q1l3cqaSySgnUgBIhYUl44vn6lGznMa7iefpxdE638F5NhqiBpwM8HROxhdm6piPpkt7KS_M6K4-rs5MTC6RHSJ-hSO_X9fdslcQRWAWsBn54AJUJf-O3Z6Bl1SIQ8DZcVjJiIXwF_nKLDtYMtAZsEfgRvXonGzu9AqsjEsGcPXQE1gHrUAyxkiT2F2y1MBOwNn6_zRfg3S3VBxHU8FV4Ty4Aq9DRaVOOPEJ5gPKAwIoRoTziDvgLtpGpPOIHFR8d0NZ-96i0xtG6JbLTIDZPGDNYMUKRovIoDAopHXmPdkR7JqetkCRx3MwQlDV7fDYSw0y__I5Vjr7RcJf0T9uiMBL__f9Te1W2hZvMu3CPKuzxP6OVIZS0WODPOIeweuB3i6Zh2E9W9laHvXUTsO493tXJ2dOXU5HIhsua1yKhJitZmqV1xfJkbng_VpKPhZCsp5INRU99LosqEz3P-qpMVMNSlqdlmmdFVqb5vqaxpmws-iIbiLIK8pQWofRe6_MSuRPl_UZNXZZPPNGiJ-2vW8iYoTe8BoGxuJSuiTW7fps85KlWPvg_XYIKmprPzpop-jaQ98pMDxZ7CvimwqzM73Hv6Mcah6GsSTanmwefVJi3fj_YBVgXue6v3epsHAiw7npCD6y7KTg37GcAAAD__zOpBTg">