clang
3.9.0
|
Functions | |
bool | 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. More... | |
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 86 of file BugReporterVisitors.cpp.
References clang::ento::ExplodedNode::getLocationAs(), and S.
Definition at line 44 of file BugReporterVisitors.cpp.
References E, clang::Expr::IgnoreParenCasts(), isDeclRefExprToReference(), and S.
const Stmt * clang::ento::bugreporter::GetRetValExpr | ( | const ExplodedNode * | N | ) |
Definition at line 93 of file BugReporterVisitors.cpp.
References clang::ento::ExplodedNode::getLocationAs(), and S.
Definition at line 37 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 949 of file BugReporterVisitors.cpp.
References clang::ento::BugReport::addVisitor(), clang::ento::SVal::castAs(), E, 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, peelOffOuterExpr(), and clang::CodeGen::state.
Referenced by emitBug(), clang::ento::FindLastStoreBRVisitor::VisitNode(), and clang::ento::NilReceiverBRVisitor::VisitNode().