diff --git a/clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerFunction.cpp b/clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerFunction.cpp index 831276ed5f27..9e90c44a7d76 100644 --- a/clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerFunction.cpp +++ b/clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerFunction.cpp @@ -386,14 +386,11 @@ LowerFunction::buildFunctionProlog(const LowerFunctionInfo &FI, FuncOp Fn, // the argument is used only to be stored in a alloca. Value arg = SrcFn.getArgument(ArgNo); assert(arg.hasOneUse()); - for (auto *firstStore : arg.getUsers()) { - assert(isa(firstStore)); - auto argAlloca = cast(firstStore).getAddr(); - rewriter.replaceAllUsesWith(argAlloca, Alloca); - rewriter.eraseOp(firstStore); - rewriter.eraseOp(argAlloca.getDefiningOp()); - } - + auto *firstStore = *arg.user_begin(); + auto argAlloca = cast(firstStore).getAddr(); + rewriter.replaceAllUsesWith(argAlloca, Alloca); + rewriter.eraseOp(firstStore); + rewriter.eraseOp(argAlloca.getDefiningOp()); break; } default: