================
@@ -7919,3 +7919,38 @@ void CodeGenModule::moveLazyEmissionStates(CodeGenModule 
*NewBuilder) {
 
   NewBuilder->ABI->MangleCtx = std::move(ABI->MangleCtx);
 }
+
+bool CodeGenModule::classNeedsVectorDestructor(const CXXRecordDecl *RD) {
+  CXXDestructorDecl *Dtor = RD->getDestructor();
----------------
Fznamznon wrote:

Well, I'm relatively new to MSVC ABI, so in most cases I was trying to follow 
@tahonermann's findings from https://github.com/llvm/llvm-project/issues/19772 
, this particularly implements this comment 
https://github.com/llvm/llvm-project/issues/19772#issuecomment-2270313429 . 
That does seem rational, because the compiler can't know if new[]/delete[] will 
be used outside of the DLL. And it seems adding dllexport does trigger MSVC to 
generate vector destructors. The comments to 
https://developercommunity.visualstudio.com/t/delete-calls-scalar-deleting-destructor-instead-of/346875
 also suggest so.
I'm not yet familiar with "local vftable constructor closues" though...

https://github.com/llvm/llvm-project/pull/126240
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to