[clang] 9d91e03 - [clang] CIndex.cpp - use cast<> instead of dyn_cast<> to avoid dereference of nullptr
Simon Pilgrim via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 23 02:09:53 PST 2022
Author: Simon Pilgrim
Date: 2022-02-23T10:09:44Z
New Revision: 9d91e03b7d075239483e9a5793e1e5db9152bdf1
URL: https://github.com/llvm/llvm-project/commit/9d91e03b7d075239483e9a5793e1e5db9152bdf1
DIFF: https://github.com/llvm/llvm-project/commit/9d91e03b7d075239483e9a5793e1e5db9152bdf1.diff
LOG: [clang] CIndex.cpp - use cast<> instead of dyn_cast<> to avoid dereference of nullptr
The pointers are used immediately, so assert the cast is correct instead of returning nullptr
Added:
Modified:
clang/tools/libclang/CIndex.cpp
Removed:
################################################################################
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 53494ecc7ae9d..e77b85d63c53e 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -4010,7 +4010,7 @@ static const ExprEvalResult *evaluateExpr(Expr *expr, CXCursor C) {
}
if (expr->getStmtClass() == Stmt::ImplicitCastExprClass) {
- const ImplicitCastExpr *I = dyn_cast<ImplicitCastExpr>(expr);
+ const auto *I = cast<ImplicitCastExpr>(expr);
auto *subExpr = I->getSubExprAsWritten();
if (subExpr->getStmtClass() == Stmt::StringLiteralClass ||
subExpr->getStmtClass() == Stmt::ObjCStringLiteralClass) {
@@ -6740,8 +6740,8 @@ void clang_getDefinitionSpellingAndExtent(
CXCursor C, const char **startBuf, const char **endBuf, unsigned *startLine,
unsigned *startColumn, unsigned *endLine, unsigned *endColumn) {
assert(getCursorDecl(C) && "CXCursor has null decl");
- const FunctionDecl *FD = dyn_cast<FunctionDecl>(getCursorDecl(C));
- CompoundStmt *Body = dyn_cast<CompoundStmt>(FD->getBody());
+ const auto *FD = cast<FunctionDecl>(getCursorDecl(C));
+ const auto *Body = cast<CompoundStmt>(FD->getBody());
SourceManager &SM = FD->getASTContext().getSourceManager();
*startBuf = SM.getCharacterData(Body->getLBracLoc());
@@ -8289,7 +8289,7 @@ unsigned clang_Cursor_getObjCPropertyAttributes(CXCursor C, unsigned reserved) {
return CXObjCPropertyAttr_noattr;
unsigned Result = CXObjCPropertyAttr_noattr;
- const ObjCPropertyDecl *PD = dyn_cast<ObjCPropertyDecl>(getCursorDecl(C));
+ const auto *PD = cast<ObjCPropertyDecl>(getCursorDecl(C));
ObjCPropertyAttribute::Kind Attr = PD->getPropertyAttributesAsWritten();
#define SET_CXOBJCPROP_ATTR(A) \
@@ -8317,7 +8317,7 @@ CXString clang_Cursor_getObjCPropertyGetterName(CXCursor C) {
if (C.kind != CXCursor_ObjCPropertyDecl)
return cxstring::createNull();
- const ObjCPropertyDecl *PD = dyn_cast<ObjCPropertyDecl>(getCursorDecl(C));
+ const auto *PD = cast<ObjCPropertyDecl>(getCursorDecl(C));
Selector sel = PD->getGetterName();
if (sel.isNull())
return cxstring::createNull();
@@ -8329,7 +8329,7 @@ CXString clang_Cursor_getObjCPropertySetterName(CXCursor C) {
if (C.kind != CXCursor_ObjCPropertyDecl)
return cxstring::createNull();
- const ObjCPropertyDecl *PD = dyn_cast<ObjCPropertyDecl>(getCursorDecl(C));
+ const auto *PD = cast<ObjCPropertyDecl>(getCursorDecl(C));
Selector sel = PD->getSetterName();
if (sel.isNull())
return cxstring::createNull();
More information about the cfe-commits
mailing list