[Mlir-commits] [mlir] [mlir] Emit an error when dense i1 array values are not `true` or `false` (PR #173533)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Thu Dec 25 00:42:51 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Longsheng Mou (CoTinker)
<details>
<summary>Changes</summary>
Fixes #<!-- -->173373.
---
Full diff: https://github.com/llvm/llvm-project/pull/173533.diff
2 Files Affected:
- (modified) mlir/lib/AsmParser/AttributeParser.cpp (+2)
- (modified) mlir/test/IR/invalid-builtin-attributes.mlir (+10)
``````````diff
diff --git a/mlir/lib/AsmParser/AttributeParser.cpp b/mlir/lib/AsmParser/AttributeParser.cpp
index dcb21e7d0831d..374471fd3ed41 100644
--- a/mlir/lib/AsmParser/AttributeParser.cpp
+++ b/mlir/lib/AsmParser/AttributeParser.cpp
@@ -883,6 +883,8 @@ ParseResult DenseArrayElementParser::parseIntegerElement(Parser &p) {
!type.isUnsignedInteger());
p.consumeToken();
} else if (p.consumeIf(Token::integer)) {
+ if (type.isInteger(1))
+ return p.emitError("expected 'true' or 'false' values for i1 type");
value = buildAttributeAPInt(type, isNegative, spelling);
if (!value)
return p.emitError("integer constant out of range");
diff --git a/mlir/test/IR/invalid-builtin-attributes.mlir b/mlir/test/IR/invalid-builtin-attributes.mlir
index 58d4940eaf874..0d00b3141fbc6 100644
--- a/mlir/test/IR/invalid-builtin-attributes.mlir
+++ b/mlir/test/IR/invalid-builtin-attributes.mlir
@@ -580,6 +580,16 @@ func.func @duplicate_dictionary_attr_key() {
// -----
+// expected-error at below {{expected i1 type for 'true' or 'false' values}}
+#attr = array<i8: true>
+
+// -----
+
+// expected-error at below {{expected 'true' or 'false' values for i1 type}}
+#attr = array<i1: 0>
+
+// -----
+
// expected-error at below {{expected '[' after 'distinct'}}
#attr = distinct<
``````````
</details>
https://github.com/llvm/llvm-project/pull/173533
More information about the Mlir-commits
mailing list