[libcxx-commits] [PATCH] D126738: [libc++][NFC] Inline the definition of ~basic_ios()

Alan Zhao via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jun 6 09:39:23 PDT 2022


ayzhao added a comment.

In D126738#3557017 <https://reviews.llvm.org/D126738#3557017>, @philnik wrote:

>> I spoke with cjdb@ offline and it seems that we can maintain ABI compatibility by defining an empty destructor (i.e. `~basic_ios() {}`) instead of using `= default`: https://godbolt.org/z/r73v1oE6n. WDYT?
>
> The problem isn't the triviality of `basic_ios`. The problem is that there isn't a key function anymore, so the vtable and destructor aren't emitted in the dylib anymore.

Apologies for the dumb question, but could we resolve the issue by moving the definition of the destructor to `ios.cpp`? The destructor would still be a key function, and this should resolve the ODR issue.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126738/new/

https://reviews.llvm.org/D126738



More information about the libcxx-commits mailing list