[PATCH] D64464: [CodeGen] Emit destructor calls for non-trivial C structs

Akira Hatanaka via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 12 10:01:33 PDT 2019


ahatanak marked an inline comment as done.
ahatanak added inline comments.


================
Comment at: lib/CodeGen/CGExpr.cpp:4647
+    pushDestroy(QualType::DK_nontrivial_c_struct, RV.getAggregateAddress(),
+                E->getType());
+
----------------
rjmccall wrote:
> Does `EmitCallExpr` not enter a cleanup when it returns an aggregate that's not into an externally-destructed slot?  That seems wrong and dangerous.
I'm going to split this patch into two parts, one for compound literals and the other for everything else. The patch is getting too large and I also found another bug: a cleanup isn't pushed for ObjC message send.


Repository:
  rC Clang

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

https://reviews.llvm.org/D64464





More information about the cfe-commits mailing list