rjmccall added a comment.
In https://reviews.llvm.org/D49718#1173038, @ahatanak wrote:
> Note that in order to destruct C++ objects, I'm using pushDestroy which
> pushes a NormalCleanup when exception handling isn't enabled. This is
> different from PushDestructorCleanup which always pushes a
> NormalAndEHCleanup, but I think using pushDestroy is more correct since I
> don't think we need to do a cleanup on the EH path when exception isn't
> enabled.
I don't think it makes any difference because we shouldn't be emitting cleanup
paths when exceptions are disabled. I don't think there's an intended
difference in semantics between those two destructor-cleanup paths, at least.
================
Comment at: lib/CodeGen/CGBlocks.cpp:1603
+ };
+}
+
----------------
There's already a `CallBlockRelease` cleanup that can presumably be unified
with this.
================
Comment at: lib/CodeGen/CGBlocks.cpp:1905
+ case BlockCaptureEntityKind::None:
+ llvm_unreachable("unexpected BlockCaptureEntityKind");
}
----------------
These two switches differ only in (1) what kind of cleanup they push and (2) a
small optimization that can easily be conditionalized by the request to push an
EH-only cleanup.
Repository:
rC Clang
https://reviews.llvm.org/D49718
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits