This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG39191c457715: [NFC][Clang] Fix static analyzer concerns (authored by eandrews). Herald added a project: clang.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157118/new/ https://reviews.llvm.org/D157118 Files: clang/lib/AST/StmtPrinter.cpp clang/lib/Analysis/PathDiagnostic.cpp Index: clang/lib/Analysis/PathDiagnostic.cpp =================================================================== --- clang/lib/Analysis/PathDiagnostic.cpp +++ clang/lib/Analysis/PathDiagnostic.cpp @@ -584,6 +584,7 @@ PathDiagnosticLocation::createBegin(const Stmt *S, const SourceManager &SM, LocationOrAnalysisDeclContext LAC) { + assert(S && "Statement cannot be null"); return PathDiagnosticLocation(getValidSourceLocation(S, LAC), SM, SingleLocK); } Index: clang/lib/AST/StmtPrinter.cpp =================================================================== --- clang/lib/AST/StmtPrinter.cpp +++ clang/lib/AST/StmtPrinter.cpp @@ -175,6 +175,7 @@ /// PrintRawCompoundStmt - Print a compound stmt without indenting the {, and /// with no newline after the }. void StmtPrinter::PrintRawCompoundStmt(CompoundStmt *Node) { + assert(Node && "Compound statement cannot be null"); OS << "{" << NL; PrintFPPragmas(Node); for (auto *I : Node->body()) @@ -599,8 +600,10 @@ if (auto *FS = static_cast<ObjCAtFinallyStmt *>(Node->getFinallyStmt())) { Indent() << "@finally"; - PrintRawCompoundStmt(dyn_cast<CompoundStmt>(FS->getFinallyBody())); - OS << NL; + if (auto *CS = dyn_cast<CompoundStmt>(FS->getFinallyBody())) { + PrintRawCompoundStmt(CS); + OS << NL; + } } } @@ -635,7 +638,7 @@ void StmtPrinter::VisitObjCAutoreleasePoolStmt(ObjCAutoreleasePoolStmt *Node) { Indent() << "@autoreleasepool"; - PrintRawCompoundStmt(dyn_cast<CompoundStmt>(Node->getSubStmt())); + PrintRawCompoundStmt(cast<CompoundStmt>(Node->getSubStmt())); OS << NL; }
Index: clang/lib/Analysis/PathDiagnostic.cpp =================================================================== --- clang/lib/Analysis/PathDiagnostic.cpp +++ clang/lib/Analysis/PathDiagnostic.cpp @@ -584,6 +584,7 @@ PathDiagnosticLocation::createBegin(const Stmt *S, const SourceManager &SM, LocationOrAnalysisDeclContext LAC) { + assert(S && "Statement cannot be null"); return PathDiagnosticLocation(getValidSourceLocation(S, LAC), SM, SingleLocK); } Index: clang/lib/AST/StmtPrinter.cpp =================================================================== --- clang/lib/AST/StmtPrinter.cpp +++ clang/lib/AST/StmtPrinter.cpp @@ -175,6 +175,7 @@ /// PrintRawCompoundStmt - Print a compound stmt without indenting the {, and /// with no newline after the }. void StmtPrinter::PrintRawCompoundStmt(CompoundStmt *Node) { + assert(Node && "Compound statement cannot be null"); OS << "{" << NL; PrintFPPragmas(Node); for (auto *I : Node->body()) @@ -599,8 +600,10 @@ if (auto *FS = static_cast<ObjCAtFinallyStmt *>(Node->getFinallyStmt())) { Indent() << "@finally"; - PrintRawCompoundStmt(dyn_cast<CompoundStmt>(FS->getFinallyBody())); - OS << NL; + if (auto *CS = dyn_cast<CompoundStmt>(FS->getFinallyBody())) { + PrintRawCompoundStmt(CS); + OS << NL; + } } } @@ -635,7 +638,7 @@ void StmtPrinter::VisitObjCAutoreleasePoolStmt(ObjCAutoreleasePoolStmt *Node) { Indent() << "@autoreleasepool"; - PrintRawCompoundStmt(dyn_cast<CompoundStmt>(Node->getSubStmt())); + PrintRawCompoundStmt(cast<CompoundStmt>(Node->getSubStmt())); OS << NL; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits