clang API Documentation
Constructs a Stack hint for the given symbol. More...
#include <PathDiagnostic.h>
Public Member Functions | |
StackHintGeneratorForSymbol (SymbolRef S, StringRef M) | |
virtual | ~StackHintGeneratorForSymbol () |
std::string | getMessage (const ExplodedNode *N) override |
Search the call expression for the symbol Sym and dispatch the 'getMessageForX()' methods to construct a specific message. | |
virtual std::string | getMessageForArg (const Expr *ArgE, unsigned ArgIndex) |
virtual std::string | getMessageForReturn (const CallExpr *CallExpr) |
virtual std::string | getMessageForSymbolNotFound () |
Constructs a Stack hint for the given symbol.
The class knows how to construct the stack hint message based on traversing the CallExpr associated with the call and checking if the given symbol is returned or is one of the arguments. The hint can be customized by redefining 'getMessageForX()' methods.
Definition at line 474 of file PathDiagnostic.h.
clang::ento::StackHintGeneratorForSymbol::StackHintGeneratorForSymbol | ( | SymbolRef | S, |
StringRef | M | ||
) | [inline] |
Definition at line 480 of file PathDiagnostic.h.
virtual clang::ento::StackHintGeneratorForSymbol::~StackHintGeneratorForSymbol | ( | ) | [inline, virtual] |
Definition at line 481 of file PathDiagnostic.h.
std::string StackHintGeneratorForSymbol::getMessage | ( | const ExplodedNode * | N | ) | [override, virtual] |
Search the call expression for the symbol Sym and dispatch the 'getMessageForX()' methods to construct a specific message.
Implements clang::ento::StackHintGenerator.
Definition at line 1122 of file PathDiagnostic.cpp.
References clang::CallExpr::arg_begin(), clang::CallExpr::arg_end(), clang::ProgramPoint::castAs(), clang::ento::SVal::getAs(), clang::ento::SVal::getAsLocSymbol(), clang::CallExitEnd::getCalleeContext(), clang::StackFrameContext::getCallSite(), clang::ento::ExplodedNode::getLocation(), clang::ento::ExplodedNode::getLocationContext(), clang::ento::ExplodedNode::getState(), P, and State.
std::string StackHintGeneratorForSymbol::getMessageForArg | ( | const Expr * | ArgE, |
unsigned | ArgIndex | ||
) | [virtual] |
Produces the message of the following form: 'Msg via Nth parameter'
Definition at line 1169 of file PathDiagnostic.cpp.
virtual std::string clang::ento::StackHintGeneratorForSymbol::getMessageForReturn | ( | const CallExpr * | CallExpr | ) | [inline, virtual] |
Definition at line 490 of file PathDiagnostic.h.
virtual std::string clang::ento::StackHintGeneratorForSymbol::getMessageForSymbolNotFound | ( | ) | [inline, virtual] |
Definition at line 493 of file PathDiagnostic.h.