[clang] Resolve FIXME: Look at E, not M. (PR #85541)

via cfe-commits cfe-commits at lists.llvm.org
Sat Mar 16 12:01:15 PDT 2024


https://github.com/AtariDreams updated https://github.com/llvm/llvm-project/pull/85541

>From 369cd6fcebc22f926f7b002f64a44f866283a0c1 Mon Sep 17 00:00:00 2001
From: Rose <gfunni234 at gmail.com>
Date: Sat, 16 Mar 2024 12:07:21 -0400
Subject: [PATCH] Resolve FIXME: Look at E, not M.

---
 clang/lib/CodeGen/CGExpr.cpp | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index 59a7fe8925001c..2f664ad3024eb3 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -316,13 +316,12 @@ pushTemporaryCleanup(CodeGenFunction &CGF, const MaterializeTemporaryExpr *M,
           Destroy = &CodeGenFunction::destroyARCWeak;
         }
         if (Duration == SD_FullExpression)
-          CGF.pushDestroy(CleanupKind, ReferenceTemporary,
-                          M->getType(), *Destroy,
-                          CleanupKind & EHCleanup);
+          CGF.pushDestroy(CleanupKind, ReferenceTemporary, E->getType(),
+                          *Destroy, CleanupKind & EHCleanup);
         else
           CGF.pushLifetimeExtendedDestroy(CleanupKind, ReferenceTemporary,
-                                          M->getType(),
-                                          *Destroy, CleanupKind & EHCleanup);
+                                          E->getType(), *Destroy,
+                                          CleanupKind & EHCleanup);
         return;
 
       case SD_Dynamic:
@@ -445,7 +444,7 @@ EmitMaterializeTemporaryExpr(const MaterializeTemporaryExpr *M) {
 
   // FIXME: ideally this would use EmitAnyExprToMem, however, we cannot do so
   // as that will cause the lifetime adjustment to be lost for ARC
-  auto ownership = M->getType().getObjCLifetime();
+  auto ownership = E->getType().getObjCLifetime();
   if (ownership != Qualifiers::OCL_None &&
       ownership != Qualifiers::OCL_ExplicitNone) {
     Address Object = createReferenceTemporary(*this, M, E);



More information about the cfe-commits mailing list