[C++20] [Modules] Not properly mangling for entities in named modules for MSVC ABI
Open
ABI
clang:modules
help wanted
platform:windows
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
Reproducer: https://godbolt.org/z/5oaM6Yjv5
for
```C++
export module a;
export int func() {
return 43;
}
```
Clang in Windows ABI generates:
```
"?func@@YAHXZ"
```
but MSVC generates:
```
?func@@YAHXZ::
```
This is a compatibility problem. And also this is a correctness problem. Since the design of C++20 Named Modules ask toolchains to treat the entity in different named modules as different entity at link time even they have the same name. So this is a missing feature at ABI level.
Estimated difficulty: medium
Contributor guide
Assessment
This issue has not been assessed yet.