Fznamznon wrote: > What's the diff from the previous version of this?
1. Now the changes are put under -fclang-abi-compat flag and can be disabled via -fclang-abi-compat=21. 2. The body of the vector deleting destructor now can call class's operator delete or a usual deallocation function, depending on the bits of the implicit flag. Similar to https://github.com/llvm/llvm-project/commit/c87be722d60467dfc651186c1b1b058ce2e34644 but for vector deleting destructors and operator delete[] . No errors are emitted in case some of operators delete cannot be found, so no issues like https://github.com/llvm/llvm-project/pull/133950#issuecomment-2787510484 and https://github.com/llvm/llvm-project/pull/133950#issuecomment-2797470333 will occur. In case class has ambiguous operator delete[] , we move on and always call the usual deallocation function in the destructor's body since in this case it doesn't matter since only ::delete can be called for an object of such class. Because of this we may need 4 operators delete to be stored for each CXXDestructorDecl, so I moved the storage to ASTContext and only stored something for canonical declarations to avoid increasing memory consumption. Please let me know if that is not helpful and I'll try to split old and new changes into separate commits in the branch. https://github.com/llvm/llvm-project/pull/165598 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
