<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">