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