jroelofs wrote:

> > > Let's just increase to 9 bits.
> > > Have you checked whether the size of `Stmt` or `Expr` changes when you do 
> > > this?
> > 
> > 
> > I have these concerns as well, this ends up affecting the size of a lot of 
> > things....
> > That said, StmtNodes.td already has 267 items in it (as far as I can tell, 
> > just a wc -l on appearances of 'def'). So I don't know how we're getting 
> > away with this already.
> > Can you confirm how many are present currently?
> > I also think 9 should be plenty, 512 should cover us for many many years.
> 
> I THINK I just tracked down that our current max is ~249, and I intend to add 
> a few more for OpenACC, so this would cause us to exceed the limit, even 
> without a downstream.

quick way to find those cases:

```
diff --git a/clang/include/clang/AST/Stmt.h b/clang/include/clang/AST/Stmt.h
index 59c3284b422b..fb3862d42d04 100644
--- a/clang/include/clang/AST/Stmt.h
+++ b/clang/include/clang/AST/Stmt.h
@@ -1440,6 +1440,7 @@ public:
                   "changing bitfields changed sizeof(Stmt)");
     static_assert(sizeof(*this) % alignof(void *) == 0,
                   "Insufficient alignment!");
+    assert(llvm::isInt<NumStmtBits>(SC));
     StmtBits.sClass = SC;
     if (StatisticsEnabled) Stmt::addStmtClass(SC);
   }
```

https://github.com/llvm/llvm-project/pull/120341
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to