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(); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits