From: George Karpenkov Date: Wed, 22 Aug 2018 23:16:44 +0000 (+0000) Subject: [analyzer] [NFC] Minor refactoring of BugReporterVisitors X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b5bc540693a8de70c1770dc14350fa7d142fcb21;p=clang [analyzer] [NFC] Minor refactoring of BugReporterVisitors Differential Revision: https://reviews.llvm.org/D51130 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@340473 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp b/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp index 8ad300278b..40e077b73c 100644 --- a/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp +++ b/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?