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

    <tr>
        <th>Summary</th>
        <td>
            CWG2813: extra move in calling of explicit object member function
        </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
```
struct A {
    A() {}
    A(A&&) = delete;
    void f(this A) {}
};

int main() {
    A{}.f();
}
```
must be accepted per [CWG2813](https://cplusplus.github.io/CWG/issues/2813.html), and GCC does accept it, but not Clang unfortunately.

Online demo: https://gcc.godbolt.org/z/6x7PTsE4M

Related discussion: https://stackoverflow.com/q/78785176/7325599
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkUk1vnDAQ_TXDZRQEw-ceOJDdklPVqoqUs7EH1q2xt9hskv76CnbTbFLJBjPDe8_PfsJ7PVrmBop7KA6RWMLRzU3Hao56p16bx6P2eJrdOIsJkgMkLZTJdWyfPsyLDNgiVPeXCiJiC1QD7bZidfhYb4HKbewQsgMqNhwYshv02WmFA1AdVvX2M9G6ePv98tQ24CS0vVG9kdyg8XBpviP_0X00NC0-YM8opORTYIUnnhGK-_3TA9VpBsUBqD6GcPKQtUAdUCdPZvHrjEcdjksfawfU7Z8egDrt_cIeqFvB8TFMZt0E7VFYhQ_7PSrH_iqGOqydfgloXcC9EXbExQ5uDosVgc1rfOv6mzXaMiqeHGQtftzTKGU8OtU7E2I3j0DdH6CufKm-P_ov-ddbnh9sxGpUaS8X77Wz_9P5IOQvd-Z5MO45lm4C6n4DdVVd1UValesyo6LY7SLVZGqX7UTETVpRWidlnufRsSlqmSqSlSxzValC5UMqy0ENWUl9WjNFuqGE8qRaZ5YneSzTQUjFiUqGoqJyB3nCk9AmNuY8ra6i7XSbNEmyNI-M6Nn4LcpElp9x6wLRmuy5WUF3_TJ6yBOjffDvNEEHw83bDWct8kuYBU7uzKgtSmGMtiO6AfnlZLTUAV3_k2XAiaeeZxwWK4N2Nlpm03y6iEskLke2Kl5fd6fZrRS3GbkaOTf0NwAA__9sjg1w">