Cppcheck
Classes | Enumerations | Functions
checkother.cpp File Reference
#include "checkother.h"
#include "mathlib.h"
#include "symboldatabase.h"
#include <cmath>
#include <stack>
#include <algorithm>

Go to the source code of this file.

Classes

struct  Condition

Enumerations

enum  Position { First, Second, NA }
enum  Relation {
  Equal, NotEqual, Less, LessEqual,
  More, MoreEqual
}

Functions

static std::string analyzeType (const Token *tok)
static bool nonLocal (const Variable *var)
static void eraseNotLocalArg (std::map< unsigned int, const Token * > &container, const SymbolDatabase *symbolDatabase)
static bool isFunctionOrBreakPattern (const Token *tok)
static bool isTypeWithoutSideEffects (const Tokenizer *tokenizer, const Variable *var)
static const TokenfindSelfAssignPattern (const Token *start)
static std::string invertOperatorForOperandSwap (std::string s)
static bool analyzeLogicOperatorCondition (const Condition &c1, const Condition &c2, bool inv1, bool inv2, bool varFirst1, bool varFirst2, const std::string &firstConstant, const std::string &secondConstant, const Token *op1Tok, const Token *op3Tok, Relation relation)
static bool isChar (const Variable *var)
static bool isSignedChar (const Variable *var)
static bool expressionHasSideEffects (const Token *first, const Token *last)

Enumeration Type Documentation

enum Position
Enumerator:
First 
Second 
NA 

Definition at line 1188 of file checkother.cpp.

enum Relation
Enumerator:
Equal 
NotEqual 
Less 
LessEqual 
More 
MoreEqual 

Definition at line 1189 of file checkother.cpp.


Function Documentation

static bool analyzeLogicOperatorCondition ( const Condition c1,
const Condition c2,
bool  inv1,
bool  inv2,
bool  varFirst1,
bool  varFirst2,
const std::string &  firstConstant,
const std::string &  secondConstant,
const Token op1Tok,
const Token op3Tok,
Relation  relation 
) [static]
static std::string analyzeType ( const Token tok) [static]

Definition at line 407 of file checkother.cpp.

References Token::isLong(), Token::Match(), and Token::str().

Referenced by CheckOther::invalidPointerCast().

static void eraseNotLocalArg ( std::map< unsigned int, const Token * > &  container,
const SymbolDatabase symbolDatabase 
) [static]
static bool expressionHasSideEffects ( const Token first,
const Token last 
) [static]

Definition at line 2299 of file checkother.cpp.

References Token::eIncDecOp, Token::Match(), and Token::next().

Referenced by CheckOther::checkDuplicateIf().

static const Token* findSelfAssignPattern ( const Token start) [inline, static]

Definition at line 1125 of file checkother.cpp.

References Token::findmatch().

Referenced by CheckOther::checkSelfAssignment().

static std::string invertOperatorForOperandSwap ( std::string  s) [static]
static bool isChar ( const Variable var) [static]
static bool isFunctionOrBreakPattern ( const Token tok) [inline, static]

Definition at line 773 of file checkother.cpp.

References Token::Match().

Referenced by CheckOther::checkRedundantAssignmentInSwitch().

static bool isSignedChar ( const Variable var) [static]

Definition at line 1927 of file checkother.cpp.

References isChar(), Token::isUnsigned(), and Variable::typeStartToken().

Referenced by CheckOther::checkCharVariable().

static bool isTypeWithoutSideEffects ( const Tokenizer tokenizer,
const Variable var 
) [static]
static bool nonLocal ( const Variable var) [static]