From a97914243aa536495ad5eb5cc5ded5e47be921dc Mon Sep 17 00:00:00 2001 From: George Karpenkov Date: Wed, 22 Aug 2018 23:16:44 +0000 Subject: [PATCH] [analyzer] [NFC] Minor refactoring of BugReporterVisitors Differential Revision: https://reviews.llvm.org/D51130 llvm-svn: 340473 --- .../Core/BugReporterVisitors.cpp | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp index 8ad300278bb3..40e077b73c99 100644 --- a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp +++ b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp @@ -759,10 +759,14 @@ class ReturnVisitor : public BugReporterVisitor { bool EnableNullFPSuppression; bool ShouldInvalidate = true; + AnalyzerOptions& Options; public: - ReturnVisitor(const StackFrameContext *Frame, bool Suppressed) - : StackFrame(Frame), EnableNullFPSuppression(Suppressed) {} + ReturnVisitor(const StackFrameContext *Frame, + bool Suppressed, + AnalyzerOptions &Options) + : StackFrame(Frame), EnableNullFPSuppression(Suppressed), + Options(Options) {} static void *getTag() { static int Tag = 0; @@ -790,10 +794,10 @@ public: // First, find when we processed the statement. do { - if (Optional CEE = Node->getLocationAs()) + if (auto CEE = Node->getLocationAs()) if (CEE->getCalleeContext()->getCallSite() == S) break; - if (Optional SP = Node->getLocationAs()) + if (auto SP = Node->getLocationAs()) if (SP->getStmt() == S) break; @@ -834,13 +838,8 @@ public: BR.markInteresting(CalleeContext); BR.addVisitor(llvm::make_unique(CalleeContext, - EnableNullFPSuppression)); - } - - /// Returns true if any counter-suppression heuristics are enabled for - /// ReturnVisitor. - static bool hasCounterSuppression(AnalyzerOptions &Options) { - return Options.shouldAvoidSuppressingNullArgumentPaths(); + EnableNullFPSuppression, + Options)); } std::shared_ptr @@ -909,8 +908,8 @@ public: // If we have counter-suppression enabled, make sure we keep visiting // future nodes. We want to emit a path note as well, in case // the report is resurrected as valid later on. - AnalyzerOptions &Options = BRC.getAnalyzerOptions(); - if (EnableNullFPSuppression && hasCounterSuppression(Options)) + if (EnableNullFPSuppression && + Options.shouldAvoidSuppressingNullArgumentPaths()) Mode = MaybeUnsuppress; if (RetE->getType()->isObjCObjectPointerType()) @@ -947,8 +946,7 @@ public: visitNodeMaybeUnsuppress(const ExplodedNode *N, const ExplodedNode *PrevN, BugReporterContext &BRC, BugReport &BR) { #ifndef NDEBUG - AnalyzerOptions &Options = BRC.getAnalyzerOptions(); - assert(hasCounterSuppression(Options)); + assert(Options.shouldAvoidSuppressingNullArgumentPaths()); #endif // Are we at the entry node for this call?