Lines Matching refs:Call
492 void propagateReturnType(const Expr *Call, const FunctionDecl *Fun);
498 bool handleCall(const CallExpr *Call, const Expr *ObjArg,
502 void VisitCallExpr(const CallExpr *Call);
505 void VisitCXXConstructExpr(const CXXConstructExpr *Call);
506 void VisitCXXMemberCallExpr(const CXXMemberCallExpr *Call);
507 void VisitCXXOperatorCallExpr(const CXXOperatorCallExpr *Call);
612 bool ConsumedStmtVisitor::handleCall(const CallExpr *Call, const Expr *ObjArg, in handleCall() argument
615 if (isa<CXXOperatorCallExpr>(Call) && isa<CXXMethodDecl>(FunD)) in handleCall()
619 for (unsigned Index = Offset; Index < Call->getNumArgs(); ++Index) { in handleCall()
627 InfoEntry Entry = findInfo(Call->getArg(Index)); in handleCall()
640 Call->getArg(Index)->getExprLoc(), in handleCall()
665 checkCallability(PInfo, FunD, Call->getExprLoc()); in handleCall()
678 PropagationMap.insert(PairType(Call, in handleCall()
685 void ConsumedStmtVisitor::propagateReturnType(const Expr *Call, in propagateReturnType() argument
698 PropagationMap.insert(PairType(Call, PropagationInfo(ReturnState))); in propagateReturnType()
741 void ConsumedStmtVisitor::VisitCallExpr(const CallExpr *Call) { in VisitCallExpr() argument
742 const FunctionDecl *FunDecl = Call->getDirectCallee(); in VisitCallExpr()
748 if (Call->isCallToStdMove()) { in VisitCallExpr()
749 copyInfo(Call->getArg(0), Call, CS_Consumed); in VisitCallExpr()
753 handleCall(Call, nullptr, FunDecl); in VisitCallExpr()
754 propagateReturnType(Call, FunDecl); in VisitCallExpr()
772 void ConsumedStmtVisitor::VisitCXXConstructExpr(const CXXConstructExpr *Call) { in VisitCXXConstructExpr() argument
773 CXXConstructorDecl *Constructor = Call->getConstructor(); in VisitCXXConstructExpr()
784 PropagationMap.insert(PairType(Call, PropagationInfo(RetState))); in VisitCXXConstructExpr()
786 PropagationMap.insert(PairType(Call, in VisitCXXConstructExpr()
789 copyInfo(Call->getArg(0), Call, CS_Consumed); in VisitCXXConstructExpr()
795 copyInfo(Call->getArg(0), Call, NS); in VisitCXXConstructExpr()
799 PropagationMap.insert(PairType(Call, PropagationInfo(RetState))); in VisitCXXConstructExpr()
804 const CXXMemberCallExpr *Call) { in VisitCXXMemberCallExpr() argument
805 CXXMethodDecl* MD = Call->getMethodDecl(); in VisitCXXMemberCallExpr()
809 handleCall(Call, Call->getImplicitObjectArgument(), MD); in VisitCXXMemberCallExpr()
810 propagateReturnType(Call, MD); in VisitCXXMemberCallExpr()
814 const CXXOperatorCallExpr *Call) { in VisitCXXOperatorCallExpr() argument
815 const auto *FunDecl = dyn_cast_or_null<FunctionDecl>(Call->getDirectCallee()); in VisitCXXOperatorCallExpr()
818 if (Call->getOperator() == OO_Equal) { in VisitCXXOperatorCallExpr()
819 ConsumedState CS = getInfo(Call->getArg(1)); in VisitCXXOperatorCallExpr()
820 if (!handleCall(Call, Call->getArg(0), FunDecl)) in VisitCXXOperatorCallExpr()
821 setInfo(Call->getArg(0), CS); in VisitCXXOperatorCallExpr()
825 if (const auto *MCall = dyn_cast<CXXMemberCallExpr>(Call)) in VisitCXXOperatorCallExpr()
828 handleCall(Call, Call->getArg(0), FunDecl); in VisitCXXOperatorCallExpr()
830 propagateReturnType(Call, FunDecl); in VisitCXXOperatorCallExpr()