[clang-tools-extra] [clang] [C23] Fix crash with _BitInt running clang-tidy (PR #65889)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 19 07:44:31 PDT 2023
================
@@ -1333,7 +1333,15 @@ 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>()) {
+ ID.AddBoolean(true);
+ BitIntT->Profile(ID);
+ } else {
+ ID.AddBoolean(false);
----------------
DonatNagyE wrote:
```suggestion
QualType T = S->getType();
ID.AddInteger(T->getTypeClass());
if (auto BitIntT = T->getAs<BitIntType>()) {
BitIntT->Profile(ID);
} else {
```
I agree with @erichkeane's suggestion that `getTypeClass()` is more elegant than adding literal true and false.
https://github.com/llvm/llvm-project/pull/65889
More information about the cfe-commits
mailing list