[Mlir-commits] [mlir] [MLIR] Fix crash when parsing typed attribute via parseOptionalAttribute (PR #186192)
Mehdi Amini
llvmlistbot at llvm.org
Mon Mar 23 06:40:02 PDT 2026
================
@@ -1142,6 +1142,26 @@ class AsmParser {
virtual OptionalParseResult parseOptionalAttribute(SymbolRefAttr &result,
Type type = {}) = 0;
+ /// Parse an optional attribute of a specific typed result. This overload
+ /// handles concrete attribute types (e.g. FloatAttr) that are not covered by
+ /// a dedicated virtual overload. It parses any attribute and then validates
+ /// that the result is of the expected type, emitting an error if not.
+ template <typename AttrType>
+ std::enable_if_t<!llvm::is_one_of<AttrType, Attribute, ArrayAttr, StringAttr,
+ SymbolRefAttr>::value,
+ OptionalParseResult>
+ parseOptionalAttribute(AttrType &result, Type type = {}) {
----------------
joker-eph wrote:
Addressing in #188039 (and applying to all the other cases in this file)
https://github.com/llvm/llvm-project/pull/186192
More information about the Mlir-commits
mailing list