Cppcheck
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
ExecutionPathBufferOverrun Class Reference

Check for buffer overruns (using ExecutionPath) More...

Inheritance diagram for ExecutionPathBufferOverrun:
ExecutionPath

List of all members.

Public Member Functions

 ExecutionPathBufferOverrun (Check *c, const std::map< unsigned int, CheckBufferOverrun::ArrayInfo > &arrayinfo)
 Startup constructor.

Private Member Functions

ExecutionPathcopy ()
 Copy this check.
bool is_equal (const ExecutionPath *e) const
 is other execution path equal?
void operator= (const ExecutionPathBufferOverrun &)
 no implementation => compiler error if used by accident
 ExecutionPathBufferOverrun (Check *c, const std::map< unsigned int, CheckBufferOverrun::ArrayInfo > &arrayinfo, unsigned int varid_)
 internal constructor for creating extra checks
const Tokenparse (const Token &tok, std::list< ExecutionPath * > &checks) const
 Parse tokens at given location.

Static Private Member Functions

static void assign_value (std::list< ExecutionPath * > &checks, unsigned int varid, const std::string &value)
 Assign value to a variable.
static void array_index (const Token *tok, std::list< ExecutionPath * > &checks, unsigned int varid1, unsigned int varid2)
 Found array usage, analyse the array usage.

Private Attributes

const std::map< unsigned int,
CheckBufferOverrun::ArrayInfo > & 
arrayInfo
 Buffer information.
MathLib::bigint value
 Variable value.

Detailed Description

Check for buffer overruns (using ExecutionPath)

Definition at line 2035 of file checkbufferoverrun.cpp.


Constructor & Destructor Documentation

ExecutionPathBufferOverrun::ExecutionPathBufferOverrun ( Check c,
const std::map< unsigned int, CheckBufferOverrun::ArrayInfo > &  arrayinfo 
) [inline]

Startup constructor.

Definition at line 2038 of file checkbufferoverrun.cpp.

ExecutionPathBufferOverrun::ExecutionPathBufferOverrun ( Check c,
const std::map< unsigned int, CheckBufferOverrun::ArrayInfo > &  arrayinfo,
unsigned int  varid_ 
) [inline, private]

internal constructor for creating extra checks

Definition at line 2061 of file checkbufferoverrun.cpp.


Member Function Documentation

static void ExecutionPathBufferOverrun::array_index ( const Token tok,
std::list< ExecutionPath * > &  checks,
unsigned int  varid1,
unsigned int  varid2 
) [inline, static, private]

Found array usage, analyse the array usage.

Parameters:
toktoken where usage occurs (only used when reporting the error)
checksThe execution paths
varid1variable id for the array
varid2variable id for the index

Definition at line 2095 of file checkbufferoverrun.cpp.

References CheckBufferOverrun::arrayIndexOutOfBoundsError(), arrayInfo, CheckBufferOverrun::ArrayInfo::num(), ExecutionPath::owner, value, and ExecutionPath::varId.

static void ExecutionPathBufferOverrun::assign_value ( std::list< ExecutionPath * > &  checks,
unsigned int  varid,
const std::string &  value 
) [inline, static, private]

Assign value to a variable.

Parameters:
checksthe execution paths
varidthe variable id
valuethe assigned value

Definition at line 2076 of file checkbufferoverrun.cpp.

References MathLib::toLongNumber(), value, and ExecutionPath::varId.

ExecutionPath* ExecutionPathBufferOverrun::copy ( ) [inline, private, virtual]

Copy this check.

Called from the ExecutionPath baseclass.

Implements ExecutionPath.

Definition at line 2044 of file checkbufferoverrun.cpp.

bool ExecutionPathBufferOverrun::is_equal ( const ExecutionPath e) const [inline, private, virtual]

is other execution path equal?

Implements ExecutionPath.

Definition at line 2049 of file checkbufferoverrun.cpp.

References value.

void ExecutionPathBufferOverrun::operator= ( const ExecutionPathBufferOverrun ) [private]

no implementation => compiler error if used by accident

const Token* ExecutionPathBufferOverrun::parse ( const Token tok,
std::list< ExecutionPath * > &  checks 
) const [inline, private, virtual]

Parse tokens at given location.

Parameters:
toktoken to parse
checksThe execution paths. All execution paths in the list are executed in the current scope.
Returns:
the token before the "next" token.

Implements ExecutionPath.

Definition at line 2124 of file checkbufferoverrun.cpp.

References Token::Match(), Token::next(), Token::previous(), Token::strAt(), Token::tokAt(), and Token::varId().


Member Data Documentation

const std::map<unsigned int, CheckBufferOverrun::ArrayInfo>& ExecutionPathBufferOverrun::arrayInfo [private]

Buffer information.

Definition at line 2055 of file checkbufferoverrun.cpp.

Referenced by array_index().

Variable value.

Definition at line 2068 of file checkbufferoverrun.cpp.

Referenced by array_index(), assign_value(), and is_equal().


The documentation for this class was generated from the following file: