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