diff --git a/mlir/include/mlir/IR/OperationSupport.h b/mlir/include/mlir/IR/OperationSupport.h --- a/mlir/include/mlir/IR/OperationSupport.h +++ b/mlir/include/mlir/IR/OperationSupport.h @@ -483,6 +483,7 @@ /// Add an attribute with the specified name. void addAttribute(Identifier name, Attribute attr) { + assert(attr && "unexpected null attribute"); attributes.append(name, attr); } diff --git a/mlir/lib/IR/Operation.cpp b/mlir/lib/IR/Operation.cpp --- a/mlir/lib/IR/Operation.cpp +++ b/mlir/lib/IR/Operation.cpp @@ -176,6 +176,10 @@ attrs(attributes) { assert(attributes && "unexpected null attribute dictionary"); #ifndef NDEBUG + llvm::for_each(attributes.getValue(), [](NamedAttribute idAndAttr) { + assert(idAndAttr.second && + "unexpected null attribute in attribute dictionary"); + }); if (!getDialect() && !getContext()->allowsUnregisteredDialects()) llvm::report_fatal_error( name.getStringRef() +