diff --git a/flang/lib/Optimizer/Builder/HLFIRTools.cpp b/flang/lib/Optimizer/Builder/HLFIRTools.cpp --- a/flang/lib/Optimizer/Builder/HLFIRTools.cpp +++ b/flang/lib/Optimizer/Builder/HLFIRTools.cpp @@ -21,8 +21,8 @@ #include "llvm/ADT/TypeSwitch.h" #include -// Return explicit extents. If the base is a fir.box, this won't read it to -// return the extents and will instead return an empty vector. +// Return explicit extents. If the base is a fir.box or hlfir.expr, this won't +// read it to return the extents and will instead return an empty vector. static llvm::SmallVector getExplicitExtentsFromShape(mlir::Value shape) { llvm::SmallVector result; @@ -35,6 +35,8 @@ result.append(e.begin(), e.end()); } else if (mlir::dyn_cast_or_null(shapeOp)) { return {}; + } else if (auto s = mlir::dyn_cast_or_null(shapeOp)) { + return {}; } else { TODO(shape.getLoc(), "read fir.shape to get extents"); }