diff options
| author | Andy Kaylor <akaylor@nvidia.com> | 2025-09-23 08:40:34 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-23 08:40:34 -0700 |
| commit | be7444becf6ce74ccf5b6743dd6ec0c9633bfdd8 (patch) | |
| tree | 2065d782cfd92d9e2bf7a6e96ff8afcc6fa494a7 /clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp | |
| parent | ca43e766a1842da979d7a37829f6c7939ff18f3a (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.cpp | 10 |
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: " |
