diff --git a/mlir/lib/Transforms/NormalizeMemRefs.cpp b/mlir/lib/Transforms/NormalizeMemRefs.cpp --- a/mlir/lib/Transforms/NormalizeMemRefs.cpp +++ b/mlir/lib/Transforms/NormalizeMemRefs.cpp @@ -265,7 +265,11 @@ for (SymbolTable::SymbolUse symbolUse : *symbolUses) { Operation *callOp = symbolUse.getUser(); OpBuilder builder(callOp); - StringRef callee = cast(callOp).getCallee(); + StringRef callee; + if (auto castCallOp = dyn_cast(callOp)) + callee = castCallOp.getCallee(); + else + continue; Operation *newCallOp = builder.create( callOp->getLoc(), resultTypes, builder.getSymbolRefAttr(callee), callOp->getOperands());