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/. */
5 #ifndef MustReturnFromCallerChecker_h__
6 #define MustReturnFromCallerChecker_h__
8 #include "RecurseGuard.h"
9 #include "StmtToBlockMap.h"
13 class MustReturnFromCallerChecker
: public BaseCheck
{
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
;
22 bool isIgnorable(const Stmt
*S
);
23 bool immediatelyReturns(RecurseGuard
<const CFGBlock
*> Block
,
24 ASTContext
*TheContext
, size_t FromIdx
);