diff --git a/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp b/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp index d4c7c5a94e20..7ef36b87b7a2 100644 --- a/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp +++ b/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp @@ -383,7 +383,7 @@ class CIRCallLowering : public mlir::OpConversionPattern { matchAndRewrite(mlir::cir::CallOp op, OpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const override { rewriter.replaceOpWithNewOp( - op, op.getResultTypes(), op.getCalleeAttr(), op.getArgOperands()); + op, op.getResultTypes(), op.getCalleeAttr(), adaptor.getOperands()); return mlir::LogicalResult::success(); } }; diff --git a/clang/test/CIR/Lowering/call.cir b/clang/test/CIR/Lowering/call.cir index 1de50ed9ff23..fc10da80e300 100644 --- a/clang/test/CIR/Lowering/call.cir +++ b/clang/test/CIR/Lowering/call.cir @@ -9,7 +9,6 @@ module { cir.call @a() : () -> () cir.return } -} // MLIR: llvm.func @a() { // MLIR-NEXT: llvm.return @@ -26,3 +25,12 @@ module { // LLVM-NEXT: call void @a() // LLVM-NEXT: ret void // LLVM-NEXT: } + + cir.func @callee(!cir.ptr) -> () attributes {sym_visibility = "private"} + cir.func @caller(%arg0: !cir.ptr) -> () { + cir.call @callee(%arg0) : (!cir.ptr) -> () + // MLIR: llvm.call @callee(%arg0) : (!llvm.ptr) -> () + cir.return + } + +} // end module