[clang-tools-extra] [clang] [C23] Fix crash with _BitInt running clang-tidy (PR #65889)

Henrik G. Olsson via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 29 07:57:25 PDT 2023


================
@@ -1333,7 +1333,13 @@ 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();
+  ID.AddInteger(T->getTypeClass());
----------------
hnrklssn wrote:

This addition of the type class doesn't observe the `Canonical` attribute, leading to IntegerLiterals with different types but same canonical types mismatching even when `Canonical` is true.

https://github.com/llvm/llvm-project/pull/65889


More information about the cfe-commits mailing list