aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Kruse <llvm-project@meinersbur.de>2025-09-24 12:45:18 +0200
committerMichael Kruse <llvm-project@meinersbur.de>2025-09-24 12:45:23 +0200
commit7655a11ac10f0cca877e56a73e2948a265db00ab (patch)
tree307466a9b0b45a3856ca2ee1d673808c61d37b0d
parent2436b5ec1cb663a290caac619ba0d12b7ed8f5cb (diff)
downloadllvm-users/meinersbur/mlir_tile.zip
llvm-users/meinersbur/mlir_tile.tar.gz
llvm-users/meinersbur/mlir_tile.tar.bz2
Avoid structured binding capture to appease compilerusers/meinersbur/mlir_tile
-rw-r--r--mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp b/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
index d3cc7e5..f681b03 100644
--- a/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+++ b/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
@@ -3300,6 +3300,9 @@ void NewCliOp::getAsmResultNames(OpAsmSetValueNameFn setNameFn) {
Value result = getResult();
auto [newCli, gen, cons] = decodeCli(result);
+ // Structured binding `gen` cannot be captured in lambdas before C++20
+ OpOperand *generator = gen;
+
// Derive the CLI variable name from its generator:
// * "canonloop" for omp.canonical_loop
// * custom name for loop transformation generatees
@@ -3324,7 +3327,7 @@ void NewCliOp::getAsmResultNames(OpAsmSetValueNameFn setNameFn) {
unsigned firstGrid = generateesFirst;
unsigned firstIntratile = generateesFirst + generateesCount / 2;
unsigned end = generateesFirst + generateesCount;
- unsigned opnum = gen->getOperandNumber();
+ unsigned opnum = generator->getOperandNumber();
// In the OpenMP apply and looprange clauses, indices are 1-based
if (firstGrid <= opnum && opnum < firstIntratile) {
unsigned gridnum = opnum - firstGrid + 1;