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
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to