<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/100547>100547</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang rejects valid program when using function call operator
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ranaanoop
</td>
</tr>
</table>
<pre>
The following valid program is rejected by clang: [Demo](https://godbolt.org/z/rK5W6G7K8)
```
struct A {
A() {}
A(A&&) = default;
void f(this A) {}
void operator() (this A) {}
};
int main() {
A{}.f(); // ok
A{}(); // Clang rejects while gcc and msvc accepts
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0Us2OozwQfJrm0prIGDuEgw_kQ3yHua60Z2MMeNfYyDYZzT79CpLsJButZPHTVHUX1SVjNKPTWgA_A28yuabJBxGkk9J5v2Sd7z_Ft0nj4K31H8aNeJHW9LgEPwY5o4kY9A-tku6x-0RlpRuhqBH4udGzB94APU0pLRGKGmgLtB1933mbDj6MQNtfQNvwzr8f_y_fT0ArIA2QGo7kdvbXmMKqEtYI5flaQUSsgW6MvVg2z_Ua6HE_FULRYK8HudoExQP94k2PA9BTmkzcSK-ddohfdJDJh_u0fxG2h3v_69W4hLM07kHng8idehiuH6E449Ue9D9fUC-Y_zafb85H_JiM1TgqhdL1OMeLQqmUXlLEL2nPvma9KPqqqGSmRV7SvCJ5TqtsEh3RpWJDURbHcuhYxSRnnPJB5wVjA2eZEZRQRkrKScUpqQ46P-VkqMqOM1rk9ASM6Fkae7D2Mm9bzkyMqxY5IZyVmZWdtvGeuCA21Fu3jhEYsSam-MVLJlktnv_1OX4fk3a4xi2Xw-pUMt6hktb-WVq2Biv-yp9J09odlJ-Bttus2-1tCX6bAbTdBUeg7U3zRdDfAQAA__-hPuhe">