Fail with an error if attempting to serialize an unknown attr.
diff --git a/iree/compiler/Dialect/Util/IR/UtilAttrs.cpp b/iree/compiler/Dialect/Util/IR/UtilAttrs.cpp
index 370a1df..c519b6b 100644
--- a/iree/compiler/Dialect/Util/IR/UtilAttrs.cpp
+++ b/iree/compiler/Dialect/Util/IR/UtilAttrs.cpp
@@ -462,6 +462,11 @@
llvm::raw_ostream &os) const {
for (auto valueAttr : getValues()) {
auto serializableAttr = valueAttr.dyn_cast<SerializableAttrInterface>();
+ if (!serializableAttr) {
+ llvm::errs() << "unable to serialize a non-serializable attribute: "
+ << valueAttr.getType() << "\n";
+ return failure();
+ }
if (failed(serializableAttr.serializeToStream(endian, os))) {
return failure();
}