From b6a5aeadb5588dedc09eacc3b98b0278d6d53529 Mon Sep 17 00:00:00 2001 From: "Manna, Soumi" Date: Sun, 28 May 2023 20:08:54 -0700 Subject: [PATCH] [NFC][CLANG] Fix issue with dereference null return value in EvaluateBuiltinClassifyType() This patch uses cast instead of dyn_cast which will assert if the type doesn't match. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D151469 --- clang/lib/AST/ExprConstant.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index 1df992c..f2517de 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -11290,7 +11290,6 @@ EvaluateBuiltinClassifyType(QualType T, const LangOptions &LangOpts) { assert(!T->isDependentType() && "unexpected dependent type"); QualType CanTy = T.getCanonicalType(); - const BuiltinType *BT = dyn_cast(CanTy); switch (CanTy->getTypeClass()) { #define TYPE(ID, BASE) @@ -11303,7 +11302,7 @@ EvaluateBuiltinClassifyType(QualType T, const LangOptions &LangOpts) { llvm_unreachable("unexpected non-canonical or dependent type"); case Type::Builtin: - switch (BT->getKind()) { + switch (cast(CanTy)->getKind()) { #define BUILTIN_TYPE(ID, SINGLETON_ID) #define SIGNED_TYPE(ID, SINGLETON_ID) \ case BuiltinType::ID: return GCCTypeClass::Integer; -- 2.7.4