diff options
author | Michael Kruse <llvm-project@meinersbur.de> | 2025-09-24 12:45:18 +0200 |
---|---|---|
committer | Michael Kruse <llvm-project@meinersbur.de> | 2025-09-24 12:45:23 +0200 |
commit | 7655a11ac10f0cca877e56a73e2948a265db00ab (patch) | |
tree | 307466a9b0b45a3856ca2ee1d673808c61d37b0d | |
parent | 2436b5ec1cb663a290caac619ba0d12b7ed8f5cb (diff) | |
download | llvm-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.cpp | 5 |
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; |