rjmccall added a comment.

In D82999#2129417 <https://reviews.llvm.org/D82999#2129417>, @ahatanak wrote:

> In test case `test13` in clang/test/CodeGenCXX/exceptions.cpp, I think you 
> can turn `invoke void @_ZN6test131AC1Ev` into `call void @_ZN6test131AC1Ev`, 
> no? If the false expression throws, there is nothing to clean up in the false 
> expression and also nothing in the true expression has to be cleaned up.


Yes, this is true.  It would be possible to enhance Clang's cleanup stack to 
support this sort of thing — we'd want to be able to mark a cleanup as 
"currently known inactive" without potentially popping it off the cleanup 
stack, and then we could have conditional scopes remember the cleanups that 
were added, deactivate them this way, and then reactivate them after the merge. 
 Swift's cleanup manager supports something similar.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82999



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

Reply via email to