diff --git a/mlir/lib/Dialect/StandardOps/IR/Ops.cpp b/mlir/lib/Dialect/StandardOps/IR/Ops.cpp --- a/mlir/lib/Dialect/StandardOps/IR/Ops.cpp +++ b/mlir/lib/Dialect/StandardOps/IR/Ops.cpp @@ -564,7 +564,8 @@ return failure(); Region *body = result.addRegion(); - if (parser.parseRegion(*body, llvm::None, llvm::None)) + if (parser.parseRegion(*body, llvm::None, llvm::None) || + parser.parseOptionalAttrDict(result.attributes)) return failure(); result.types.push_back(memrefType.cast().getElementType()); return success(); diff --git a/mlir/test/IR/core-ops.mlir b/mlir/test/IR/core-ops.mlir --- a/mlir/test/IR/core-ops.mlir +++ b/mlir/test/IR/core-ops.mlir @@ -839,7 +839,8 @@ %c1 = constant 1.0 : f32 %out = addf %c1, %old_value : f32 atomic_yield %out : f32 - } + // CHECK: index_attr = 8 : index + } { index_attr = 8 : index } return }