Home | History | Annotate | Download | only in Sema

Lines Matching refs:FD

168 static bool hasRecursiveCallInPath(const FunctionDecl *FD, CFGBlock &Block) {
169 // Process all the Stmt's in this block to find any calls to FD.
176 CE->getCalleeDecl()->getCanonicalDecl() != FD)
207 // to the exit block passes through a call to FD.
208 static bool checkForRecursiveFunctionCall(const FunctionDecl *FD, CFG *cfg) {
233 if (hasRecursiveCallInPath(FD, *CurBlock))
254 static void checkRecursiveFunction(Sema &S, const FunctionDecl *FD,
256 FD = FD->getCanonicalDecl();
260 if (FD->getTemplatedKind() != FunctionDecl::TK_NonTemplate &&
261 FD->getTemplatedKind() != FunctionDecl::TK_MemberSpecialization)
272 if (checkForRecursiveFunctionCall(FD, cfg))
522 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
523 ReturnsVoid = FD->getReturnType()->isVoidType();
524 HasNoReturn = FD->isNoReturn();
567 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
568 S.Diag(LBrace, CD.diag_NeverFallThroughOrReturn) << 0 << FD;
1697 void enterFunction(const FunctionDecl* FD) override {
1698 CurrentFunction = FD;
1701 void leaveFunction(const FunctionDecl* FD) override {
2053 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
2054 checkRecursiveFunction(S, FD, Body, AC);