clang API Documentation
Functions | |
| bool | trackNullOrUndefValue (const ExplodedNode *N, const Stmt *S, BugReport &R, bool IsArg=false, bool EnableNullFPSuppression=true) |
| const Expr * | getDerefExpr (const Stmt *S) |
| const Stmt * | GetDenomExpr (const ExplodedNode *N) |
| const Stmt * | GetRetValExpr (const ExplodedNode *N) |
| bool | isDeclRefExprToReference (const Expr *E) |
| const Stmt * clang::ento::bugreporter::GetDenomExpr | ( | const ExplodedNode * | N | ) |
Definition at line 85 of file BugReporterVisitors.cpp.
References clang::ento::ExplodedNode::getLocationAs(), and S.
| const Expr * clang::ento::bugreporter::getDerefExpr | ( | const Stmt * | S | ) |
Definition at line 43 of file BugReporterVisitors.cpp.
References clang::Expr::IgnoreParenCasts(), isDeclRefExprToReference(), S, and clang::UO_Deref.
| const Stmt * clang::ento::bugreporter::GetRetValExpr | ( | const ExplodedNode * | N | ) |
Definition at line 92 of file BugReporterVisitors.cpp.
References clang::ento::ExplodedNode::getLocationAs(), and S.
| bool clang::ento::bugreporter::isDeclRefExprToReference | ( | const Expr * | E | ) |
Definition at line 36 of file BugReporterVisitors.cpp.
Referenced by getDerefExpr().
| bool clang::ento::bugreporter::trackNullOrUndefValue | ( | const ExplodedNode * | N, |
| const Stmt * | S, | ||
| BugReport & | R, | ||
| bool | IsArg = false, |
||
| bool | EnableNullFPSuppression = true |
||
| ) |
Attempts to add visitors to trace a null or undefined value back to its point of origin, whether it is a symbol constrained to null or an explicit assignment.
| N | A node "downstream" from the evaluation of the statement. |
| S | The statement whose value is null or undefined. |
| R | The bug report to which visitors should be attached. |
| IsArg | Whether the statement is an argument to an inlined function. If this is the case, N must be the CallEnter node for the function. |
| EnableNullFPSuppression | Whether we should employ false positive suppression (inlined defensive checks, returned null). |
true does not actually imply that any visitors were added. Definition at line 892 of file BugReporterVisitors.cpp.
References clang::ento::BugReport::addVisitor(), clang::ento::SVal::castAs(), clang::ento::SVal::getAs(), clang::ProgramPoint::getAs(), clang::ento::SVal::getAsLocSymbol(), clang::ento::SVal::getAsRegion(), clang::ento::ExplodedNode::getFirstPred(), clang::ento::ExplodedNode::getLocation(), clang::ento::ExplodedNode::getLocationContext(), getLocationRegionIfReference(), clang::ento::NilReceiverBRVisitor::getNilReceiver(), clang::ento::ExplodedNode::getState(), clang::Expr::IgnoreParenCasts(), clang::ento::CallEvent::isCallStmt(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), clang::ento::BugReport::markInteresting(), P, and peelOffOuterExpr().
Referenced by emitBug(), clang::ento::FindLastStoreBRVisitor::VisitNode(), and clang::ento::NilReceiverBRVisitor::VisitNode().