<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/89781>89781</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[C++20] [Modules] Clang does not implement strong ownership model when targeting MSVC ABI
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
huangqinjin
</td>
</tr>
</table>
<pre>
#### `hello.cppm`
```c++
export module hello;
export void greeting() {}
```
#### MSVC
```shell
>cl /std:c++20 /TP /interface /c hello.cppm
>dumpbin /symbols hello.obj | findstr greeting
009 00000000 SECT3 notype () External | ?greeting@@YAXXZ::<!hello> (void __cdecl greeting(void))
```
#### Clang MSVC ABI
```shell
>clang --target=x86_64-windows-msvc -std=c++20 -c hello.cppm
>dumpbin /symbols hello.o | findstr greeting
00B 00000000 SECT1 notype () External | ?greeting@@YAXXZ (void __cdecl greeting(void))
```
#### Clang GNU ABI
```shell
>clang --target=x86_64-windows-gnu -std=c++20 -c hello.cppm
>>dumpbin /symbols hello.o | findstr greeting
00D 00000000 SECT1 notype () External | _ZW5hello8greetingv
```
The symbol mangling includes the module name for GNU ABI but not for MSVC ABI.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0lN9v2yAQx_-a8wtyhMF2nAc_5Oe0h06T2m1dXyIbiE2FwTM4af_7CZK0aR-6rtOiE4HL8eXuA7nKWtloIUrIFpCtomp0rRnKdqx080vqe6mj2vDHEgh9MgQ5boVSZsL6voMcA14BnvtJMAZk4S14xUNvBoc6w0clUNgG9OVveyM5agYhnNQNkALIDMF0AdPVK-HT8jheJnR1_X35Ktb6o04-umYKAdlYx4HOT-kR7F03X_0otRPDrmLCLxi6KO4swMeur6UOKo9dbZQ9RZn6HsF0iXZSc-uG5zrCToxnCJ8-6Hq9vKEIaeMee39SKBQhtH5wYtCV8vOgBXTzJJNiSPHP-e3tHdB5sCWQ5MRx7VUCvu2WccHUJUbvBzLz9k6MS1XpJsBE88XnPwD1oXHsqqERDujqoci3eRofpObmYOPO7hmKA_DVM_D4L9m-SXbxkmzycbL_g-KnL9_-GWKjx_cy_DjG1Qcwbu9-ZEG7OKvt36Bz0wp0zAh1lW6U1A2SmqmRC4tcK87NQVedQDsznNmhenQ-meA7v8pJxEvKZ3RWRaJMpgktirwgWdSWCd6l05RyltGE0zpP8yKv84QVtE53s3QXyZJgkuKU0CRLMckmBUuLBPMpZTteZYRCikVXSTVRat9NzNBE0tpRlMVsWiSRqmqhbGiUhISrA0J8zxxKHx_XY2MhxUpaZ58VnHQqdNfl-QYhWyHIFlehaOtXxxfDjbChXNn1SnRCO2TdYHSDzEGLwbay96SEQodWaHR8NPLiDxuNgypb53rr-wTZANk00rVjPWGmA7LxOZ2-4n4w94I53_t8iRbIJlT5OwAA___ZzcP8">