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().