llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-mlir-core Author: None (llvmbot) <details> <summary>Changes</summary> resolves llvm/llvm-project#<!-- -->79797 --- Full diff: https://github.com/llvm/llvm-project/pull/79863.diff 1 Files Affected: - (modified) mlir/include/mlir/IR/Dialect.h (+10-2) ``````````diff diff --git a/mlir/include/mlir/IR/Dialect.h b/mlir/include/mlir/IR/Dialect.h index 45f29f37dd3b97c..50f6f6de5c2897a 100644 --- a/mlir/include/mlir/IR/Dialect.h +++ b/mlir/include/mlir/IR/Dialect.h @@ -281,7 +281,11 @@ class Dialect { /// Register a set of type classes with this dialect. template <typename... Args> void addTypes() { - (addType<Args>(), ...); + // This initializer_list argument pack expansion is essentially equal to + // using a fold expression with a comma operator. Clang however, refuses + // to compile a fold expression with a depth of more than 256 by default. + // There seem to be no such limitations for initializer_list. + (void)std::initializer_list<int>{0, (addType<Args>(), 0)...}; } /// Register a type instance with this dialect. @@ -292,7 +296,11 @@ class Dialect { /// Register a set of attribute classes with this dialect. template <typename... Args> void addAttributes() { - (addAttribute<Args>(), ...); + // This initializer_list argument pack expansion is essentially equal to + // using a fold expression with a comma operator. Clang however, refuses + // to compile a fold expression with a depth of more than 256 by default. + // There seem to be no such limitations for initializer_list. + (void)std::initializer_list<int>{0, (addAttribute<Args>(), 0)...}; } /// Register an attribute instance with this dialect. `````````` </details> https://github.com/llvm/llvm-project/pull/79863 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits