[Mlir-commits] [mlir] [mlir] Fix abort on string token in integer dense tensor parsing (PR #231876)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Oct 14 04:46:06 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Wijkqwe
<details>
<summary>Changes</summary>
`getIntAttrElements` asserted on `Token::string` because `parseElement()`
accepts string tokens but the integer path only handled `floatliteral`
before asserting. Add an explicit emitError for string tokens, matching
the existing floatliteral handling pattern.
Fixes #<!-- -->228850.
---
Full diff: https://github.com/llvm/llvm-project/pull/231876.diff
2 Files Affected:
- (modified) mlir/lib/AsmParser/AttributeParser.cpp (+4)
- (modified) mlir/test/IR/invalid-builtin-attributes.mlir (+7)
``````````diff
diff --git a/mlir/lib/AsmParser/AttributeParser.cpp b/mlir/lib/AsmParser/AttributeParser.cpp
index 7459d8e0c36259..162b56e6db0090 100644
--- a/mlir/lib/AsmParser/AttributeParser.cpp
+++ b/mlir/lib/AsmParser/AttributeParser.cpp
@@ -645,6 +645,10 @@ TensorLiteralParser::getIntAttrElements(SMLoc loc, Type eltTy,
<< "expected integer elements, but parsed floating-point";
}
+ if (token.is(Token::string)) {
+ return p.emitError(tokenLoc)
+ << "expected integer elements, but parsed string";
+ }
assert(token.isAny(Token::integer, Token::kw_true, Token::kw_false) &&
"unexpected token type");
if (token.isAny(Token::kw_true, Token::kw_false)) {
diff --git a/mlir/test/IR/invalid-builtin-attributes.mlir b/mlir/test/IR/invalid-builtin-attributes.mlir
index 1989ce663cbb21..2a64a6b697baa4 100644
--- a/mlir/test/IR/invalid-builtin-attributes.mlir
+++ b/mlir/test/IR/invalid-builtin-attributes.mlir
@@ -693,3 +693,10 @@ func.func @negative_elements_literal_without_signed_repr() {
%0 = arith.constant dense<[1.000000e+00, -2.000000e+00]> : tensor<2xf8E8M0FNU>
return
}
+
+// -----
+
+func.func @string_in_int_tensor() {
+ // expected-error @+1 {{expected integer elements, but parsed string}}
+ "foo"() {bar = dense<["oops"]> : tensor<1xi1>} : () -> ()
+}
``````````
</details>
https://github.com/llvm/llvm-project/pull/231876
More information about the Mlir-commits
mailing list