[clang] [CIR] Upstream emitAndUpdateRetAlloca (PR #129933)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 5 12:49:14 PST 2025


================
@@ -195,7 +195,16 @@ void CIRGenFunction::startFunction(GlobalDecl gd, QualType returnType,
     mlir::Location fnBodyBegin = getLoc(fd->getBody()->getBeginLoc());
     builder.CIRBaseBuilderTy::createStore(fnBodyBegin, paramVal, addrVal);
   }
+
   assert(builder.getInsertionBlock() && "Should be valid");
+
+  auto fnEndLoc = getLoc(fd->getBody()->getEndLoc());
+
+  // When the current function is not void, create an address to store the
+  // result value.
+  if (fnRetCIRTy.has_value())
----------------
erichkeane wrote:

What purpose does this `fnRetCIRTy` serve?  `startFunction` already has the return type in `returnType`, right?  Could/should we just convert it instead?

https://github.com/llvm/llvm-project/pull/129933


More information about the cfe-commits mailing list