| Issue |
172424
|
| Summary |
[C++20] [Modules] [ABI] The linkage of implicit special methods
|
| Labels |
clang:modules
|
| Assignees |
|
| Reporter |
ChuanqiXu9
|
Similar to https://github.com/llvm/llvm-project/issues/145676
But the issue is for implicit special methods. e.g.,
```C++
export module M;
class V {
public:
V() { ... }
~V() { ... }
};
class S {
V v;
public:
};
```
In the module unit, we should generate `S::S()` and `S::~()` as a strong symbol. This is useful for faster compilation.
The difference between https://github.com/llvm/llvm-project/issues/145676 is, there are cases we can't generate these special methods:
```C++
export module M;
class V {
public:
V() = delete;
V(int);
~V() { ... }
};
class S {
V v;
public:
S(int);
};
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs