<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/145676>145676</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[C++20] [Modules] [ABI] The linkage of in-class defaulted function
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ChuanqiXu9
</td>
</tr>
</table>
<pre>
e.g.,
```
export module a;
export class A {
public:
A() = default;
~A() = default;
};
```
I believe we should generate `A::A()` and `A::~A()` in current TU instead of treating them as inline now.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0kbGO2zAMhp-GXogYMm3ZyeDBThDghm5XoKssM7ZaRUotKWmXe_bCOQOXpQABUfxB6hc_FYKZHHMLsgd5ylSKs1_a45yU-21-pEM2-PFvy_mUAx1BdGvUYgvR8Z-bXyJe_Zgso4Ky_ypqq0LADqFZi7c0WKOhXCcgdkB7oANCecKRLyrZ-NmL-PFfDZrTlrw4ANG94cDW8J3xwRhmn-yIEzteVGSEWnTrq2W3zYVaoHLji_DxohiHOi0Lu4jv39G4EFmN6C8YF1bRuAnjzFdUAY2zxjE6_8izsS3HQ3lQGbdFI8VeClmV2dyy5OagJTWFKsqhrkkXl6EUuuZKD8z7zLQkSIqaZFEQUZmTFEqQVHVVExdaQyX4qozNrb1fc79MmQkhcVtUsm7qzKqBbXjSI3L8wKcKRCvMpV2bdkOaAlTCmhDD15hoon1iPwL1QD0JkCcE2X97sgzbrevf1ux9ZrTG_VITr8swbvdJd-PDI16S09F4l6XFtnOMt7Aul85A58nEOQ259leg82pgO3a3xf9kHYHOT9sB6Lz9697SvwAAAP__0kbGsg">