• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/

Lines Matching refs:Stmt

21 #include "clang/AST/Stmt.h"
170 const Stmt *getParent(const Stmt *S) const {
254 generateDiagForGotoOP(const PathDiagnosticConstruct &C, const Stmt *S,
262 generateDiagForBinaryOP(const PathDiagnosticConstruct &C, const Stmt *T,
291 const Stmt *CallSite = CExit.getCalleeContext()->getCallSite();
535 const Stmt *Start = CF->getStartLocation().asStmt();
536 const Stmt *End = CF->getEndLocation().asStmt();
579 if (const Stmt *S = C.getCurrentNode()->getNextStmtForDiagnostics())
616 static const Stmt *getEnclosingParent(const Stmt *S, const ParentMap &PM) {
620 const Stmt *Parent = PM.getParentIgnoreParens(S);
625 case Stmt::ForStmtClass:
626 case Stmt::DoStmtClass:
627 case Stmt::WhileStmtClass:
628 case Stmt::ObjCForCollectionStmtClass:
629 case Stmt::CXXForRangeStmtClass:
639 getEnclosingStmtLocation(const Stmt *S, const LocationContext *LC,
646 while (const Stmt *Parent = getEnclosingParent(S, LC->getParentMap())) {
648 case Stmt::BinaryOperatorClass: {
654 case Stmt::CompoundStmtClass:
655 case Stmt::StmtExprClass:
657 case Stmt::ChooseExprClass:
664 case Stmt::BinaryConditionalOperatorClass:
665 case Stmt::ConditionalOperatorClass:
673 case Stmt::CXXForRangeStmtClass:
677 case Stmt::DoStmtClass:
679 case Stmt::ForStmtClass:
683 case Stmt::IfStmtClass:
687 case Stmt::ObjCForCollectionStmtClass:
691 case Stmt::WhileStmtClass:
702 assert(S && "Cannot have null Stmt for PathDiagnosticLocation");
750 if (const Stmt *S = Dst->getLabel()) {
759 case Stmt::DefaultStmtClass:
764 case Stmt::CaseStmtClass: {
799 const PathDiagnosticConstruct &C, const Stmt *S,
810 const PathDiagnosticConstruct &C, const Stmt *T, const CFGBlock *Src,
863 const Stmt *T = Src->getTerminatorStmt();
872 case Stmt::GotoStmtClass:
873 case Stmt::IndirectGotoStmtClass: {
874 if (const Stmt *S = C.getCurrentNode()->getNextStmtForDiagnostics())
879 case Stmt::SwitchStmtClass: {
884 case Stmt::BreakStmtClass:
885 case Stmt::ContinueStmtClass: {
895 case Stmt::BinaryConditionalOperatorClass:
896 case Stmt::ConditionalOperatorClass: {
908 if (const Stmt *S = End.asStmt())
917 case Stmt::BinaryOperatorClass: {
925 case Stmt::DoStmtClass:
933 if (const Stmt *S = End.asStmt())
942 if (const Stmt *S = End.asStmt())
951 case Stmt::WhileStmtClass:
952 case Stmt::ForStmtClass:
959 if (const Stmt *S = End.asStmt())
967 if (const Stmt *S = End.asStmt())
977 case Stmt::IfStmtClass: {
980 if (const Stmt *S = End.asStmt())
1001 static bool isLoop(const Stmt *Term) {
1003 case Stmt::ForStmtClass:
1004 case Stmt::WhileStmtClass:
1005 case Stmt::ObjCForCollectionStmtClass:
1006 case Stmt::CXXForRangeStmtClass:
1020 static bool isContainedByStmt(const ParentMap &PM, const Stmt *S,
1021 const Stmt *SubS) {
1030 static const Stmt *getStmtBeforeCond(const ParentMap &PM, const Stmt *Term,
1035 const Stmt *S = SP->getStmt();
1044 static bool isInLoopBody(const ParentMap &PM, const Stmt *S, const Stmt *Term) {
1045 const Stmt *LoopBody = nullptr;
1047 case Stmt::CXXForRangeStmtClass: {
1056 case Stmt::ForStmtClass: {
1063 case Stmt::ObjCForCollectionStmtClass: {
1068 case Stmt::WhileStmtClass:
1105 static const Stmt *getTerminatorCondition(const CFGBlock *B) {
1106 const Stmt *S = B->getTerminatorCondition();
1241 if (const Stmt *Loop = BE->getSrc()->getLoopTarget()) {
1243 const Stmt *Body = nullptr;
1273 if (const Stmt *Term = BSrc->getTerminatorStmt()) {
1277 const Stmt *TermCond = getTerminatorCondition(BSrc);
1335 static const Stmt *getStmtParent(const Stmt *S, const ParentMap &PM) {
1356 static bool isConditionForTerminator(const Stmt *S, const Stmt *Cond) {
1358 case Stmt::BinaryOperatorClass: {
1364 case Stmt::IfStmtClass:
1366 case Stmt::ForStmtClass:
1368 case Stmt::WhileStmtClass:
1370 case Stmt::DoStmtClass:
1372 case Stmt::ChooseExprClass:
1374 case Stmt::IndirectGotoStmtClass:
1376 case Stmt::SwitchStmtClass:
1378 case Stmt::BinaryConditionalOperatorClass:
1380 case Stmt::ConditionalOperatorClass: {
1386 case Stmt::ObjCForCollectionStmtClass:
1388 case Stmt::CXXForRangeStmtClass: {
1397 static bool isIncrementOrInitInForLoop(const Stmt *S, const Stmt *FL) {
1427 const Stmt *InnerStmt = nullptr;
1439 const Stmt *Dst = Piece->getEndLocation().getStmtOrNull();
1461 if (const Stmt *PrevSrc =
1463 const Stmt *PrevSrcParent = getStmtParent(PrevSrc, PM);
1501 const Stmt *s1Start = PieceI->getStartLocation().getStmtOrNull();
1502 const Stmt *s1End = PieceI->getEndLocation().getStmtOrNull();
1535 const Stmt *s2Start = PieceNextI->getStartLocation().getStmtOrNull();
1536 const Stmt *s2End = PieceNextI->getEndLocation().getStmtOrNull();
1595 const Stmt *S) {
1625 const Stmt *s1Start = PieceI->getStartLocation().getStmtOrNull();
1626 const Stmt *s1End = PieceI->getEndLocation().getStmtOrNull();
1649 const Stmt *s2Start = PieceNextI->getStartLocation().getStmtOrNull();
1650 const Stmt *s2End = PieceNextI->getEndLocation().getStmtOrNull();
1670 static bool lexicalContains(const ParentMap &PM, const Stmt *X, const Stmt *Y) {
1693 const Stmt *start = PieceI->getStartLocation().getStmtOrNull();
1694 const Stmt *end = PieceI->getEndLocation().getStmtOrNull();
1699 const Stmt *endParent = PM.getParent(end);
1786 const Stmt *s1Start = PieceI->getStartLocation().getStmtOrNull();
1787 const Stmt *s1End = PieceI->getEndLocation().getStmtOrNull();
1788 const Stmt *level1 = getStmtParent(s1Start, PM);
1789 const Stmt *level2 = getStmtParent(s1End, PM);
1802 const Stmt *s2Start = PieceNextI->getStartLocation().getStmtOrNull();
1803 const Stmt *s2End = PieceNextI->getEndLocation().getStmtOrNull();
1804 const Stmt *level3 = getStmtParent(s2Start, PM);
1805 const Stmt *level4 = getStmtParent(s2End, PM);
2359 const Stmt *PathSensitiveBugReport::getStmt() const {
2364 const Stmt *S = nullptr;
2390 const Stmt *S = ErrorNode->getStmtForDiagnostics();
3098 const Stmt* Body = Signature->getBody();
3120 const Stmt *S, const SourceManager &SM,
3146 } else if (const Stmt *S = N->getStmtForDiagnostics()) {
3150 const Stmt *P = N->getParentMap().getParent(S);