summaryrefslogtreecommitdiff
path: root/flang/lib/Optimizer/CodeGen/LowerRepackArrays.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'flang/lib/Optimizer/CodeGen/LowerRepackArrays.cpp')
-rw-r--r--flang/lib/Optimizer/CodeGen/LowerRepackArrays.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/flang/lib/Optimizer/CodeGen/LowerRepackArrays.cpp b/flang/lib/Optimizer/CodeGen/LowerRepackArrays.cpp
index 7fb713ff1a6c..de97a0bbc184 100644
--- a/flang/lib/Optimizer/CodeGen/LowerRepackArrays.cpp
+++ b/flang/lib/Optimizer/CodeGen/LowerRepackArrays.cpp
@@ -190,12 +190,10 @@ mlir::Value PackArrayConversion::allocateTempBuffer(
if (useStack && canAllocateTempOnStack(origBox))
assert(!isHeapAllocation && "temp must have been allocated on the stack");
- if (isHeapAllocation)
- if (auto baseType = mlir::dyn_cast<fir::ReferenceType>(base.getType()))
- if (mlir::isa<fir::BaseBoxType>(baseType.getEleTy()))
- return builder.create<fir::LoadOp>(loc, base);
-
mlir::Type ptrType = base.getType();
+ if (llvm::isa<fir::BaseBoxType>(ptrType))
+ return base;
+
mlir::Type tempBoxType = fir::BoxType::get(mlir::isa<fir::HeapType>(ptrType)
? ptrType
: fir::unwrapRefType(ptrType));