mirror of
https://github.com/intel/llvm.git
synced 2026-01-27 06:06:34 +08:00
Add a static assertions for custom Op<> to not defined data members (NFC)
A common mistake for newcomers to MLIR is to try to store extra member on the Op class. However these are intended to be thing wrapper around an Operation*, all the storage is meant to be encoded in attribute on the underlying Operation. This can be confusing to debug, so better catch it at build time. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D103869
This commit is contained in:
@@ -1780,6 +1780,8 @@ private:
|
||||
return &verifyInvariants;
|
||||
}
|
||||
static LogicalResult verifyInvariants(Operation *op) {
|
||||
static_assert(sizeof(ConcreteType) == sizeof(OpState),
|
||||
"Op class aren't allowed to have data members");
|
||||
return failure(
|
||||
failed(op_definition_impl::verifyTraits<VerifiableTraitsTupleT>(op)) ||
|
||||
failed(cast<ConcreteType>(op).verify()));
|
||||
|
||||
Reference in New Issue
Block a user