================
@@ -1333,7 +1333,14 @@ void StmtProfiler::VisitPredefinedExpr(const 
PredefinedExpr *S) {
 void StmtProfiler::VisitIntegerLiteral(const IntegerLiteral *S) {
   VisitExpr(S);
   S->getValue().Profile(ID);
-  ID.AddInteger(S->getType()->castAs<BuiltinType>()->getKind());
+
+  QualType T = S->getType();
+  if (auto BitIntT = T->getAs<BitIntType>()) {
+    BitIntT->Profile(ID, BitIntT->isSigned(), BitIntT->getNumBits());
----------------
erichkeane wrote:

Adding `const` there seems fine, it is probably just something I forgot when I 
write it in the first place.  There definitely needs to be a differentiator 
here between a builtin int and a `_BitInt`, so I think the boolean makes sense 
to me (as does the non-static profile call).  Though, I wonder if we'd be 
better doing `getTypeClass` instead?  It should be the same size (bool is just 
cast to unsigned), but be more obvious in the long run/more expandable in the 
future.

WDYT?

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

Reply via email to