summaryrefslogtreecommitdiff
path: root/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
diff options
context:
space:
mode:
authorAndy Kaylor <akaylor@nvidia.com>2025-09-23 08:40:34 -0700
committerGitHub <noreply@github.com>2025-09-23 08:40:34 -0700
commitbe7444becf6ce74ccf5b6743dd6ec0c9633bfdd8 (patch)
tree2065d782cfd92d9e2bf7a6e96ff8afcc6fa494a7 /clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
parentca43e766a1842da979d7a37829f6c7939ff18f3a (diff)
[CIR] Implement static lambda invoker (#160137)
This adds support for handling static lambda invokers.
Diffstat (limited to 'clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp')
-rw-r--r--clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp b/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
index 1596ccb6a261..876948d53010 100644
--- a/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+++ b/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
@@ -1941,8 +1941,14 @@ mlir::LogicalResult CIRToLLVMUnaryOpLowering::matchAndRewrite(
// Pointer unary operations: + only. (++ and -- of pointers are implemented
// with cir.ptr_stride, not cir.unary.)
if (mlir::isa<cir::PointerType>(elementType)) {
- return op.emitError()
- << "Unary operation on pointer types is not yet implemented";
+ switch (op.getKind()) {
+ case cir::UnaryOpKind::Plus:
+ rewriter.replaceOp(op, adaptor.getInput());
+ return mlir::success();
+ default:
+ op.emitError() << "Unknown pointer unary operation during CIR lowering";
+ return mlir::failure();
+ }
}
return op.emitError() << "Unary operation has unsupported type: "