[Mlir-commits] [mlir] [mlir][vector] Fix crash in vector.from_elements folding with poison values (PR #158528)

Matthias Springer llvmlistbot at llvm.org
Thu Sep 18 00:23:30 PDT 2025


================
@@ -2463,7 +2461,10 @@ static OpFoldResult foldFromElementsToElements(FromElementsOp fromElementsOp) {
 ///
 static OpFoldResult foldFromElementsToConstant(FromElementsOp fromElementsOp,
                                                ArrayRef<Attribute> elements) {
-  if (llvm::any_of(elements, [](Attribute attr) { return !attr; }))
+  // Check for null or poison attributes before any processing.
+  if (llvm::any_of(elements, [](Attribute attr) { 
+    return !attr || isa<ub::PoisonAttrInterface>(attr); 
----------------
matthias-springer wrote:

Long term, we should avoid hard-coding supported/unsupported types here. E.g., instead `DenseElementsAttr::get` could return an "empty" attribute instead of failing an assertion. But let's do that in a separate PR.

https://github.com/llvm/llvm-project/pull/158528


More information about the Mlir-commits mailing list