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