rjmccall added a comment.

If you're interested in working on this, great.  I actually think there's zero 
reason to emit a non-null argument here on any target unless we're going to use 
the destructor as the function pointer — but we can do that on every Itanium 
target, so we should.  So where we want to be is probably:

- use the complete-object destructor and the object pointer as its argument 
when destroying a (non-array) object of C++ class type
- otherwise use a custom function that materializes the object pointer on its 
own and uses a null pointer as the argument

And then the address-spaces tweak to that is that we use the second option when 
we either (1) the destructor isn't in the `__cxa_atexit` address space or (2) 
the object pointer can't be converted to that address space.


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

https://reviews.llvm.org/D62413



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to