tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

MustReturnFromCallerChecker.h (907B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #ifndef MustReturnFromCallerChecker_h__
      6 #define MustReturnFromCallerChecker_h__
      7 
      8 #include "RecurseGuard.h"
      9 #include "StmtToBlockMap.h"
     10 #include "Utils.h"
     11 #include "plugin.h"
     12 
     13 class MustReturnFromCallerChecker : public BaseCheck {
     14 public:
     15  MustReturnFromCallerChecker(StringRef CheckName,
     16                              ContextType *Context = nullptr)
     17      : BaseCheck(CheckName, Context) {}
     18  void registerMatchers(MatchFinder *AstMatcher) override;
     19  void check(const MatchFinder::MatchResult &Result) override;
     20 
     21 private:
     22  bool isIgnorable(const Stmt *S);
     23  bool immediatelyReturns(RecurseGuard<const CFGBlock *> Block,
     24                          ASTContext *TheContext, size_t FromIdx);
     25 };
     26 
     27 #endif