[PATCH] D157118: [NFC][Clang] Fix static analyzer concerns
Elizabeth Andrews via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 28 14:59:42 PDT 2023
eandrews updated this revision to Diff 554063.
eandrews added a comment.
Changed a dyn_cast to cast and handled ObjCAtFinallyStmt similar to how ObjCAtTryStmt is handled, i.e. just check that it exists before calling PrintRawCompoundStmt
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;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D157118.554063.patch
Type: text/x-patch
Size: 1711 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230828/3c8ddf2d/attachment-0001.bin>
More information about the cfe-commits
mailing list