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

    <tr>
        <th>Summary</th>
        <td>
            msvc abi incompatibility: classes with a deleted copy ctor can be returned in registers
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          efriedma-quic
      </td>
    </tr>
</table>

<pre>
    ```
struct Z { int z;  Z(const Z&) = delete;};
Z z(Z z) { return {z.z}; }
```

MSVC produces:
```
        mov     eax, DWORD PTR [rcx]
        ret 0
```

clang targeting Windows produces:
```
        mov rax, rcx
        mov     ecx, dword ptr [rdx]
        mov     dword ptr [rax], ecx
        ret
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUkk9r3DAQxT_N-DJk0Ur-e_AhG7O30pKWBnKTpVmvimy5kpxN9tMXa7eUbEOhxswI9PzmN_jJEMwwEbVQ7KDoMrnEo_MtHbwhPcq7n4tRWe_0Wwslu76sA3Yfol9UxGeEaodmingGsUN8Bl4rN4W4nkrgDYLoUJOlSCB2UHVrTQ7PeAZep9okF09x8dN6PG_OFyWuLalvxl_qp6_fH3D2Ti-KAoj7D6V4fUb3kjrJV-AP2D19fuzwy7dHhGLn1SsU3Xu9p4jsH8OVldOAUfqBopkGfDKTdqfwXzz-wrKO_5hVpXt9cl7jHH1i1X-z_ta_F8ok5A_J5na3G7ZMt0I3opEZtduyLpuiYJXIji01TOWlqFSd531Deb-t-_IgmaiqWh2KPjMtZ1ywcltyLqpCbARrDnUlhRZbnatmCzmjURq7sfZl3Dg_ZCaEhdpSiJJlVvZkQ8of5xOdMF0C52scfbt-c9cvQ4CcWRNi-OMSTbTUjuFFoewNmkm5cZbR9Maa-AbiHpWVIVDAk4lHlNcYalRufkMVnUclJ-zpmjzSaCb0NJgQyYds8bY9xjinP8n3wPeDicel3yg3At-vHNd2N3v3g1QEvk_0Afg-bfcrAAD__9Mt9xw">