Cppcheck
|
#include <symboldatabase.h>
Public Types | |
enum | Type { eConstructor , eCopyConstructor , eMoveConstructor , eOperatorEqual , eDestructor , eFunction , eLambda } |
Public Member Functions | |
Function (const Token *tok, const Scope *scope, const Token *tokDef, const Token *tokArgDef) | |
Function (const Token *tokenDef, const std::string &clangType) | |
const std::string & | name () const |
std::string | fullName () const |
nonneg int | argCount () const |
nonneg int | minArgCount () const |
const Variable * | getArgumentVar (nonneg int num) const |
nonneg int | initializedArgCount () const |
void | addArguments (const SymbolDatabase *symbolDatabase, const Scope *scope) |
bool | isImplicitlyVirtual (bool defaultVal=false) const |
check if this function is virtual in the base classes More... | |
std::vector< const Function * > | getOverloadedFunctions () const |
const Function * | getOverriddenFunction (bool *foundAllBaseClasses=nullptr) const |
get function in base class that is overridden More... | |
bool | isLambda () const |
bool | isConstructor () const |
bool | isDestructor () const |
bool | isAttributeConstructor () const |
bool | isAttributeDestructor () const |
bool | isAttributePure () const |
bool | isAttributeConst () const |
bool | isAttributeNoreturn () const |
bool | isAttributeNothrow () const |
bool | isAttributeNodiscard () const |
bool | hasBody () const |
bool | isInline () const |
bool | isConst () const |
bool | hasVirtualSpecifier () const |
bool | isPure () const |
bool | isStatic () const |
bool | isStaticLocal () const |
bool | isExtern () const |
bool | isFriend () const |
bool | isExplicit () const |
bool | isDefault () const |
bool | isDelete () const |
bool | isNoExcept () const |
bool | isThrow () const |
bool | hasOverrideSpecifier () const |
bool | hasFinalSpecifier () const |
bool | isOperator () const |
bool | hasLvalRefQualifier () const |
bool | hasRvalRefQualifier () const |
bool | isVariadic () const |
bool | isVolatile () const |
bool | hasTrailingReturnType () const |
void | hasBody (bool state) |
bool | isInlineKeyword () const |
bool | isEscapeFunction () const |
void | isEscapeFunction (bool state) |
bool | isConstexpr () const |
void | isConstexpr (bool state) |
bool | isSafe (const Settings &settings) const |
bool | argsMatch (const Scope *scope, const Token *first, const Token *second, const std::string &path, nonneg int path_length) const |
const Token * | returnDefEnd () const |
const Token * | constructorMemberInitialization () const |
Static Public Member Functions | |
static bool | returnsConst (const Function *function, bool unknown=false) |
static bool | returnsPointer (const Function *function, bool unknown=false) |
static bool | returnsReference (const Function *function, bool unknown=false, bool includeRValueRef=false) |
static bool | returnsStandardType (const Function *function, bool unknown=false) |
static bool | returnsVoid (const Function *function, bool unknown=false) |
static std::vector< const Token * > | findReturns (const Function *f) |
Public Attributes | |
const Token * | tokenDef {} |
function name token in class definition More... | |
const Token * | argDef {} |
function argument start '(' in class definition More... | |
const Token * | token {} |
function name token in implementation More... | |
const Token * | arg {} |
function argument start '(' More... | |
const Token * | retDef {} |
function return type token More... | |
const ::Type * | retType {} |
function return type More... | |
const Scope * | functionScope {} |
scope of function body More... | |
const Scope * | nestedIn {} |
Scope the function is declared in. More... | |
std::list< Variable > | argumentList |
argument list, must remain list due to clangimport usage! More... | |
nonneg int | initArgCount {} |
number of args with default values More... | |
Type | type = eFunction |
constructor, destructor, ... More... | |
const Token * | noexceptArg {} |
noexcept token More... | |
const Token * | throwArg {} |
throw token More... | |
const Token * | templateDef {} |
points to 'template <' before function More... | |
const Token * | functionPointerUsage {} |
function pointer usage More... | |
AccessControl | access {} |
public/protected/private More... | |
Private Types | |
enum | { fHasBody = (1 << 0) , fIsInline = (1 << 1) , fIsConst = (1 << 2) , fHasVirtualSpecifier = (1 << 3) , fIsPure = (1 << 4) , fIsStatic = (1 << 5) , fIsStaticLocal = (1 << 6) , fIsExtern = (1 << 7) , fIsFriend = (1 << 8) , fIsExplicit = (1 << 9) , fIsDefault = (1 << 10) , fIsDelete = (1 << 11) , fHasOverrideSpecifier = (1 << 12) , fHasFinalSpecifier = (1 << 13) , fIsNoExcept = (1 << 14) , fIsThrow = (1 << 15) , fIsOperator = (1 << 16) , fHasLvalRefQual = (1 << 17) , fHasRvalRefQual = (1 << 18) , fIsVariadic = (1 << 19) , fIsVolatile = (1 << 20) , fHasTrailingReturnType = (1 << 21) , fIsEscapeFunction = (1 << 22) , fIsInlineKeyword = (1 << 23) , fIsConstexpr = (1 << 24) } |
flags mask used to access specific bit. More... | |
Private Member Functions | |
bool | getFlag (unsigned int flag) const |
Get specified flag state. More... | |
void | setFlag (unsigned int flag, bool state) |
Set specified flag state. More... | |
const Function * | getOverriddenFunctionRecursive (const ::Type *baseType, bool *foundAllBaseClasses) const |
Recursively determine if this function overrides a virtual function in a base class. More... | |
void | isInline (bool state) |
void | isConst (bool state) |
void | hasVirtualSpecifier (bool state) |
void | isPure (bool state) |
void | isStatic (bool state) |
void | isStaticLocal (bool state) |
void | isExtern (bool state) |
void | isFriend (bool state) |
void | isExplicit (bool state) |
void | isDefault (bool state) |
void | isDelete (bool state) |
void | isNoExcept (bool state) |
void | isThrow (bool state) |
void | isOperator (bool state) |
void | hasLvalRefQualifier (bool state) |
void | hasRvalRefQualifier (bool state) |
void | isVariadic (bool state) |
void | isVolatile (bool state) |
void | hasTrailingReturnType (bool state) |
void | isInlineKeyword (bool state) |
const Token * | setFlags (const Token *tok1, const Scope *scope) |
Private Attributes | |
unsigned int | mFlags {} |
Friends | |
class | SymbolDatabase |
Definition at line 698 of file symboldatabase.h.
|
private |
flags mask used to access specific bit.
Enumerator | |
---|---|
fHasBody | has implementation |
fIsInline | implementation in class definition |
fIsConst | is const |
fHasVirtualSpecifier | does declaration contain 'virtual' specifier |
fIsPure | is pure virtual |
fIsStatic | is static |
fIsStaticLocal | is static local |
fIsExtern | is extern |
fIsFriend | is friend |
fIsExplicit | is explicit |
fIsDefault | is default |
fIsDelete | is delete |
fHasOverrideSpecifier | does declaration contain 'override' specifier? |
fHasFinalSpecifier | does declaration contain 'final' specifier? |
fIsNoExcept | is noexcept |
fIsThrow | is throw |
fIsOperator | is operator |
fHasLvalRefQual | has & lvalue ref-qualifier |
fHasRvalRefQual | has && rvalue ref-qualifier |
fIsVariadic | is variadic |
fIsVolatile | is volatile |
fHasTrailingReturnType | has trailing return type |
fIsEscapeFunction | Function throws or exits. |
fIsInlineKeyword | Function has "inline" keyword. |
fIsConstexpr | is constexpr |
Definition at line 703 of file symboldatabase.h.
enum Function::Type |
Enumerator | |
---|---|
eConstructor | |
eCopyConstructor | |
eMoveConstructor | |
eOperatorEqual | |
eDestructor | |
eFunction | |
eLambda |
Definition at line 750 of file symboldatabase.h.
Function::Function | ( | const Token * | tok, |
const Scope * | scope, | ||
const Token * | tokDef, | ||
const Token * | tokArgDef | ||
) |
Definition at line 2494 of file symboldatabase.cpp.
References arg, argDef, Scope::className, eConstructor, eDestructor, eLambda, eOperatorEqual, fHasFinalSpecifier, fHasOverrideSpecifier, hasBody(), hasLvalRefQualifier(), hasRvalRefQualifier(), hasTrailingReturnType(), Scope::isClassOrStructOrUnion(), isConst(), isConstructor(), isDefault(), isDelete(), isDestructor(), isExplicit(), Tokenizer::isFunctionHead(), isInline(), isLambda(), isNoExcept(), isOperator(), isPure(), isThrow(), isVolatile(), Token::link(), Token::linkAt(), Token::Match(), Token::next(), Token::previous(), retDef, setFlag(), setFlags(), Token::simpleMatch(), Token::str(), Token::strAt(), throwArg, token, tokenDef, and type.
Function::Function | ( | const Token * | tokenDef, |
const std::string & | clangType | ||
) |
Definition at line 2604 of file symboldatabase.cpp.
References endsWith(), eOperatorEqual, isConst(), isOperator(), Token::scope(), setFlags(), Token::str(), tokenDef, and type.
void Function::addArguments | ( | const SymbolDatabase * | symbolDatabase, |
const Scope * | scope | ||
) |
Definition at line 4411 of file symboldatabase.cpp.
References arg, argDef, Argument, argumentList, SymbolDatabase::debugMessage(), eLambda, findLambdaEndToken(), findLambdaEndTokenWithoutAST(), findVariableTypeIncludingUsedNamespaces(), functionScope, hasBody(), initArgCount, InternalError::INTERNAL, Token::isName(), Token::isStandardType(), isVariadic(), Token::link(), Token::linkAt(), Token::Match(), SymbolDatabase::mSettings, SymbolDatabase::mTokenizer, Token::next(), Token::previous(), Token::simpleMatch(), Token::str(), Token::strAt(), Tokenizer::syntaxError(), Token::tokAt(), type, and Token::varId().
|
inline |
Definition at line 761 of file symboldatabase.h.
Referenced by CheckClass::checkExplicitConstructors(), checkNullpointerFunctionCallPlausibility(), CheckOther::checkVarFuncNullUB(), CheckClass::constructors(), SymbolDatabase::createSymbolDatabaseNeedInitialization(), Scope::findFunction(), Scope::findFunctionInBase(), CTU::getFileInfo(), isIterator(), and CheckClass::isMemberFunc().
bool Function::argsMatch | ( | const Scope * | scope, |
const Token * | first, | ||
const Token * | second, | ||
const std::string & | path, | ||
nonneg int | path_length | ||
) | const |
Definition at line 2795 of file symboldatabase.cpp.
References Scope::className, Scope::definedType, Token::expressionString(), Token::isCpp(), Type::isDerivedFrom(), Token::isLong(), Token::isUnsigned(), Token::linkAt(), Token::Match(), nestedIn, Scope::nestedIn, Token::next(), Token::nextArgument(), Token::simpleMatch(), Token::str(), Token::strAt(), Token::tokAt(), typesMatch(), and usingNamespace().
Referenced by SymbolDatabase::addGlobalFunction(), getDuplInheritedMemberFunctionsRecursive(), and getOverriddenFunctionRecursive().
const Token * Function::constructorMemberInitialization | ( | ) | const |
Definition at line 3173 of file symboldatabase.cpp.
References arg, isConstructor(), Token::link(), and Token::simpleMatch().
Referenced by CheckOther::checkAccessOfMovedVariable(), CheckClass::checkUnsafeClassRefMember(), CheckClass::constructors(), CheckClass::initializationListUsage(), valueFlowAfterMove(), and valueFlowLifetimeUserConstructor().
Definition at line 3145 of file symboldatabase.cpp.
References Token::astParent(), Scope::bodyEnd, Scope::bodyStart, Scope::eClass, Scope::eLambda, findLambdaEndToken(), functionScope, Token::link(), Token::next(), Token::scope(), Token::simpleMatch(), and Token::str().
Referenced by CheckOther::checkConstVariable(), followAllReferences(), getLifetimeTokens(), CheckFunctions::returnLocalStdMove(), valueFlowFunctionReturn(), and valueFlowLifetimeFunction().
std::string Function::fullName | ( | ) | const |
Definition at line 2678 of file symboldatabase.cpp.
References argumentList, name(), nestedIn, and Scope::nestedIn.
Definition at line 4682 of file symboldatabase.cpp.
References argumentList.
Referenced by CheckBufferOverrun::argumentSize(), CheckClass::checkCopyCtorAndEqOperator(), checkNullpointerFunctionCallPlausibility(), Scope::findFunction(), CTU::getFileInfo(), getUnsafeFunction(), isCallFunction(), isContainerSizeChangedByFunction(), CheckUninitVar::isFunctionParUsage(), valueFlowLifetimeUserConstructor(), and valueFlowSubFunction().
|
inlineprivate |
Get specified flag state.
flag | flag to get state of |
Definition at line 736 of file symboldatabase.h.
std::vector< const Function * > Function::getOverloadedFunctions | ( | ) | const |
Definition at line 4567 of file symboldatabase.cpp.
References Scope::functionMap, Scope::isClassOrStruct(), isStatic(), nestedIn, Scope::nestedIn, Token::str(), and tokenDef.
const Function * Function::getOverriddenFunction | ( | bool * | foundAllBaseClasses = nullptr | ) | const |
get function in base class that is overridden
Definition at line 4590 of file symboldatabase.cpp.
References Scope::definedType, getOverriddenFunctionRecursive(), Scope::isClassOrStruct(), and nestedIn.
Referenced by CheckClass::checkOverride(), CheckClass::checkUselessOverride(), isImplicitlyVirtual(), and SymbolDatabase::printXml().
|
private |
Recursively determine if this function overrides a virtual function in a base class.
Definition at line 4610 of file symboldatabase.cpp.
References argDef, argsMatch(), emptyString, Scope::functionList, Scope::functionMap, hasLvalRefQualifier(), hasRvalRefQualifier(), isConst(), isDerivedFromItself(), isDestructor(), isImplicitlyVirtual(), isVolatile(), Token::Match(), match(), Token::previous(), Token::str(), tokenDef, type, and Token::type().
Referenced by getOverriddenFunction().
|
inline |
Definition at line 816 of file symboldatabase.h.
Referenced by addArguments(), SymbolDatabase::addClassFunction(), SymbolDatabase::addGlobalFunction(), CheckClass::checkConst(), CheckClass::checkCopyCtorAndEqOperator(), CheckClass::checkExplicitConstructors(), CheckMemoryLeakInClass::checkPublicFunctions(), CheckClass::checkThisUseAfterFree(), CheckClass::checkUnsafeClassRefMember(), CheckClass::checkVirtualFunctionCallInConstructor(), CheckClass::constructors(), Function(), CheckMemoryLeak::functionReturnType(), CheckClass::getFirstVirtualFunctionCallStack(), getFunctionUsage(), CheckClass::initializeVarList(), CheckUnusedVar::isFunctionWithoutSideEffects(), CheckNullPointer::nullConstantDereference(), CheckClass::operatorEqToSelf(), Check64BitPortability::pointerassignment(), CheckMemoryLeakInClass::variable(), and CheckClass::virtualDestructor().
|
inline |
Definition at line 882 of file symboldatabase.h.
|
inline |
Definition at line 861 of file symboldatabase.h.
Referenced by CheckClass::checkOverride(), CheckClass::checkUselessOverride(), and CheckClass::checkVirtualFunctionCallInConstructor().
|
inline |
Definition at line 867 of file symboldatabase.h.
Referenced by Function(), and getOverriddenFunctionRecursive().
|
inlineprivate |
Definition at line 993 of file symboldatabase.h.
|
inline |
Definition at line 858 of file symboldatabase.h.
Referenced by CheckClass::checkOverride(), CheckClass::checkVirtualFunctionCallInConstructor(), and isImplicitlyVirtual().
|
inline |
Definition at line 870 of file symboldatabase.h.
Referenced by Function(), and getOverriddenFunctionRecursive().
|
inlineprivate |
Definition at line 996 of file symboldatabase.h.
|
inline |
Definition at line 879 of file symboldatabase.h.
Referenced by Function().
|
inlineprivate |
Definition at line 1005 of file symboldatabase.h.
|
inline |
Definition at line 825 of file symboldatabase.h.
Referenced by CheckClass::checkConst(), CheckClass::checkMemsetType(), CheckClass::checkVirtualFunctionCallInConstructor(), isImplicitlyVirtual(), setFlags(), setFunctionReturnValue(), and CheckClass::virtualDestructor().
|
inlineprivate |
Definition at line 957 of file symboldatabase.h.
|
inline |
Definition at line 768 of file symboldatabase.h.
Referenced by SymbolDatabase::createSymbolDatabaseNeedInitialization().
|
inline |
Definition at line 803 of file symboldatabase.h.
|
inline |
Definition at line 794 of file symboldatabase.h.
Referenced by CheckUnusedFunctions::parseTokens().
|
inline |
Definition at line 797 of file symboldatabase.h.
Referenced by CheckUnusedFunctions::parseTokens().
|
inline |
Definition at line 812 of file symboldatabase.h.
|
inline |
Definition at line 806 of file symboldatabase.h.
|
inline |
Definition at line 809 of file symboldatabase.h.
Referenced by CheckMemoryLeakNoVar::checkForUnsafeArgAlloc().
|
inline |
Definition at line 800 of file symboldatabase.h.
|
inline |
Definition at line 822 of file symboldatabase.h.
Referenced by CheckAssert::assertWithSideEffects(), CheckClass::checkConst(), CheckClass::checkConstFunc(), Scope::findFunction(), Function(), getDuplInheritedMemberFunctionsRecursive(), getOverriddenFunctionRecursive(), CheckClass::initializeVarList(), isVariableChanged(), and SymbolDatabase::setValueTypeInTokenList().
|
inlineprivate |
Definition at line 954 of file symboldatabase.h.
|
inline |
Definition at line 896 of file symboldatabase.h.
Referenced by setFlags().
|
inline |
Definition at line 899 of file symboldatabase.h.
|
inline |
Definition at line 785 of file symboldatabase.h.
Referenced by CheckClass::canNotCopy(), CheckClass::canNotMove(), CheckClass::checkExplicitConstructors(), CheckClass::checkUnsafeClassRefMember(), CheckClass::checkVirtualFunctionCallInConstructor(), constructorMemberInitialization(), CheckClass::constructors(), SymbolDatabase::createSymbolDatabaseSetFunctionPointers(), findConstructor(), Function(), getDuplInheritedMemberFunctionsRecursive(), CheckClass::initializationListUsage(), CheckClass::initializeVarList(), CheckUnusedVar::isRecordTypeWithoutSideEffects(), CheckNullPointer::nullConstantDereference(), valueFlowLifetimeFunction(), CheckMemoryLeakInClass::variable(), and CheckOther::warningOldStylePointerCast().
|
inline |
Definition at line 846 of file symboldatabase.h.
Referenced by SymbolDatabase::addClassFunction(), CheckClass::constructors(), CheckClass::copyconstructors(), Function(), and CheckMemoryLeakInClass::variable().
|
inlineprivate |
Definition at line 978 of file symboldatabase.h.
|
inline |
Definition at line 849 of file symboldatabase.h.
Referenced by CheckClass::checkExplicitConstructors(), Function(), getDuplInheritedMemberFunctionsRecursive(), and hasNonCopyableBase().
|
inlineprivate |
Definition at line 981 of file symboldatabase.h.
|
inline |
Definition at line 791 of file symboldatabase.h.
Referenced by CheckClass::checkVirtualFunctionCallInConstructor(), Function(), getDuplInheritedMemberFunctionsRecursive(), getOverriddenFunctionRecursive(), CheckUnusedVar::isRecordTypeWithoutSideEffects(), CheckClass::overrideError(), CheckClass::uselessOverrideError(), and CheckMemoryLeakInClass::variable().
|
inline |
Definition at line 889 of file symboldatabase.h.
Referenced by SymbolDatabase::createSymbolDatabaseEscapeFunctions().
|
inline |
Definition at line 892 of file symboldatabase.h.
|
inline |
Definition at line 843 of file symboldatabase.h.
Referenced by CheckClass::checkExplicitConstructors(), and Function().
|
inlineprivate |
Definition at line 975 of file symboldatabase.h.
|
inline |
Definition at line 837 of file symboldatabase.h.
Referenced by CheckUnusedFunctions::parseTokens(), and setFlags().
|
inlineprivate |
Definition at line 969 of file symboldatabase.h.
|
inline |
Definition at line 840 of file symboldatabase.h.
Referenced by CheckClass::checkConst(), and setFlags().
|
inlineprivate |
Definition at line 972 of file symboldatabase.h.
bool Function::isImplicitlyVirtual | ( | bool | defaultVal = false | ) | const |
check if this function is virtual in the base classes
Definition at line 4553 of file symboldatabase.cpp.
References getOverriddenFunction(), hasOverrideSpecifier(), and hasVirtualSpecifier().
Referenced by CheckClass::checkConst(), CheckClass::checkReturnByReference(), getDuplInheritedMemberFunctionsRecursive(), CheckClass::getFirstVirtualFunctionCallStack(), getOverriddenFunctionRecursive(), CheckClass::getVirtualFunctionCalls(), and isContainerSizeChangedByFunction().
|
inline |
Definition at line 819 of file symboldatabase.h.
Referenced by CheckClass::checkConst(), and Function().
|
inlineprivate |
Definition at line 951 of file symboldatabase.h.
|
inline |
Definition at line 885 of file symboldatabase.h.
Referenced by setFlags().
|
inlineprivate |
Definition at line 1008 of file symboldatabase.h.
|
inline |
Definition at line 781 of file symboldatabase.h.
Referenced by Token::function(), and Function().
|
inline |
Definition at line 852 of file symboldatabase.h.
Referenced by Function(), and functionThrowsRecursive().
|
inlineprivate |
Definition at line 984 of file symboldatabase.h.
|
inline |
Definition at line 864 of file symboldatabase.h.
Referenced by CheckClass::checkConst(), CheckClass::checkReturnByReference(), CheckClass::constructors(), Function(), CheckUnusedFunctions::parseTokens(), and CheckClass::privateFunctions().
|
inlineprivate |
Definition at line 990 of file symboldatabase.h.
|
inline |
Definition at line 828 of file symboldatabase.h.
Referenced by CheckClass::checkUselessOverride(), CheckClass::checkVirtualFunctionCallInConstructor(), Function(), CheckClass::getFirstVirtualFunctionCallStack(), and CheckClass::getVirtualFunctionCalls().
|
inlineprivate |
Definition at line 960 of file symboldatabase.h.
bool Function::isSafe | ( | const Settings & | settings | ) | const |
Definition at line 3184 of file symboldatabase.cpp.
References access, Settings::SafeChecks::classes, Settings::SafeChecks::externalFunctions, Token::fileIndex(), Settings::SafeChecks::internalFunctions, isStatic(), nestedIn, Public, Settings::safeChecks, token, and Scope::type.
Referenced by valueFlowSafeFunctions().
|
inline |
Definition at line 831 of file symboldatabase.h.
Referenced by CheckAssert::assertWithSideEffects(), CheckClass::checkConst(), CheckIO::checkFileUsage(), CheckOther::checkShadowVariables(), CheckClass::checkThisUseAfterFreeRecursive(), getOverloadedFunctions(), CheckClass::initializeVarList(), isSafe(), and setFlags().
|
inlineprivate |
Definition at line 963 of file symboldatabase.h.
|
inline |
Definition at line 834 of file symboldatabase.h.
Referenced by setFlags().
|
inlineprivate |
Definition at line 966 of file symboldatabase.h.
|
inline |
Definition at line 855 of file symboldatabase.h.
Referenced by CheckMemoryLeakNoVar::checkForUnsafeArgAlloc(), Function(), functionThrowsRecursive(), and CheckExceptionSafety::unhandledExceptionSpecification().
|
inlineprivate |
Definition at line 987 of file symboldatabase.h.
|
inline |
Definition at line 873 of file symboldatabase.h.
Referenced by addArguments(), Scope::findFunction(), Scope::findFunctionInBase(), and CheckClass::isMemberFunc().
|
inlineprivate |
Definition at line 999 of file symboldatabase.h.
|
inline |
Definition at line 876 of file symboldatabase.h.
Referenced by Function(), getOverriddenFunctionRecursive(), and SymbolDatabase::setValueTypeInTokenList().
|
inlineprivate |
Definition at line 1002 of file symboldatabase.h.
|
inline |
Definition at line 764 of file symboldatabase.h.
Referenced by CheckClass::checkExplicitConstructors(), Scope::findFunction(), Scope::findFunctionInBase(), and CheckClass::isMemberFunc().
|
inline |
Definition at line 755 of file symboldatabase.h.
Referenced by CheckAssert::assertWithSideEffects(), checkFunctionUsage(), Summaries::create(), fullName(), getDuplInheritedMemberFunctionsRecursive(), CheckClass::initializeVarList(), CheckClass::isMemberFunc(), CheckIO::ArgumentInfo::isStdVectorOrString(), CheckClass::overrideError(), CheckUnusedFunctions::parseTokens(), CheckOther::passedByValueError(), CheckClass::returnByReferenceError(), setFunctionReturnValue(), CheckExceptionSafety::unhandledExceptionSpecification(), CheckClass::uselessOverrideError(), and valueFlowSubFunction().
|
inline |
Definition at line 933 of file symboldatabase.h.
References Token::findmatch().
|
static |
Definition at line 3110 of file symboldatabase.cpp.
References checkReturns(), and Token::findsimplematch().
Referenced by CheckOther::checkConstPointer(), CheckOther::checkConstVariable(), getDuplInheritedMemberFunctionsRecursive(), and isConstFunctionCall().
|
static |
Definition at line 3124 of file symboldatabase.cpp.
References checkReturns(), Token::previous(), and Token::simpleMatch().
Referenced by CheckClass::checkConst(), CheckOther::checkConstVariable(), CheckOther::checkInnerScope(), and CheckClass::checkReturnByReference().
|
static |
Definition at line 3117 of file symboldatabase.cpp.
References checkReturns(), Token::Match(), Token::previous(), and Token::simpleMatch().
Referenced by CheckClass::checkConst(), CheckOther::checkConstPointer(), CheckOther::checkConstVariable(), CheckOther::checkMisusedScopedObject(), CheckClass::checkReturnByReference(), CheckAutoVariables::checkVarLifetimeScope(), followAllReferences(), getLifetimeTokens(), isTemporary(), CheckFunctions::returnLocalStdMove(), and valueFlowLifetimeFunction().
|
static |
Definition at line 3131 of file symboldatabase.cpp.
References checkReturns(), Token::isStandardType(), and Token::previous().
Referenced by CheckClass::checkReturnByReference(), and CheckAutoVariables::checkVarLifetimeScope().
|
static |
Definition at line 3138 of file symboldatabase.cpp.
References checkReturns(), Token::previous(), and Token::simpleMatch().
Referenced by CheckFunctions::checkMissingReturn(), and isConstFunctionCall().
|
inlineprivate |
Set specified flag state.
flag | flag to set state |
state | new state of flag |
Definition at line 745 of file symboldatabase.h.
Referenced by Function().
Definition at line 2622 of file symboldatabase.cpp.
References Scope::eGlobal, Scope::eNamespace, hasVirtualSpecifier(), isConstexpr(), isExtern(), Token::isExternC(), isFriend(), Token::isInline(), isInlineKeyword(), isStatic(), isStaticLocal(), Token::link(), Token::Match(), Token::previous(), Token::simpleMatch(), Token::str(), templateDef, and Scope::type.
Referenced by Function().
|
friend |
Definition at line 700 of file symboldatabase.h.
AccessControl Function::access {} |
public/protected/private
Definition at line 919 of file symboldatabase.h.
Referenced by CheckClass::canNotCopy(), CheckClass::canNotMove(), CheckClass::checkExplicitConstructors(), CheckMemoryLeakInClass::checkPublicFunctions(), CheckClass::checkReturnPtrThis(), CheckClass::checkUselessOverride(), CheckClass::constructors(), SymbolDatabase::createSymbolDatabaseFindAllScopes(), clangimport::AstNode::createTokensFunctionDecl(), getDuplInheritedMemberFunctionsRecursive(), hasNonCopyableBase(), isSafe(), CheckClass::privateFunctions(), and CheckClass::virtualDestructor().
const Token* Function::arg {} |
function argument start '('
Definition at line 907 of file symboldatabase.h.
Referenced by addArguments(), SymbolDatabase::addClassFunction(), constructorMemberInitialization(), CheckClass::constructors(), SymbolDatabase::createSymbolDatabaseSetFunctionPointers(), Function(), CheckClass::initializeVarList(), and CheckMemoryLeakInClass::variable().
const Token* Function::argDef {} |
function argument start '(' in class definition
Definition at line 905 of file symboldatabase.h.
Referenced by addArguments(), SymbolDatabase::addGlobalFunction(), CheckClass::checkReturnPtrThis(), CheckClass::checkUselessOverride(), CheckOther::checkVarFuncNullUB(), Function(), getDuplInheritedMemberFunctionsRecursive(), getOverriddenFunctionRecursive(), CheckUnusedVar::isRecordTypeWithoutSideEffects(), and CheckClass::virtualFunctionCallInConstructorError().
std::list<Variable> Function::argumentList |
argument list, must remain list due to clangimport usage!
Definition at line 912 of file symboldatabase.h.
Referenced by addArguments(), CheckClass::checkExplicitConstructors(), CheckUninitVar::checkScope(), CheckOther::checkShadowVariables(), SymbolDatabase::createSymbolDatabaseVariableSymbolTable(), fullName(), functionModifiesArguments(), getArgumentPos(), getArgumentVar(), isUniqueExpression(), CheckClass::operatorEqToSelf(), and CheckStl::string_c_str().
const Token* Function::functionPointerUsage {} |
function pointer usage
Definition at line 918 of file symboldatabase.h.
Referenced by CheckOther::passedByValueError().
const Scope* Function::functionScope {} |
scope of function body
Definition at line 910 of file symboldatabase.h.
Referenced by addArguments(), SymbolDatabase::addClassFunction(), SymbolDatabase::addGlobalFunction(), CheckCondition::alwaysTrueFalse(), CheckAssert::assertWithSideEffects(), CheckClass::checkConstFunc(), CheckMemoryLeakInClass::checkPublicFunctions(), CheckOther::checkRedundantCopy(), CheckClass::checkReturnByReference(), CheckClass::checkThisUseAfterFree(), CheckClass::checkThisUseAfterFreeRecursive(), CheckClass::checkUselessOverride(), CheckClass::constructors(), CheckClass::copyconstructors(), SymbolDatabase::createSymbolDatabaseFindAllScopes(), SymbolDatabase::createSymbolDatabaseSetFunctionPointers(), findExpression(), findReturns(), CheckMemoryLeak::functionReturnType(), CheckClass::getFileInfo(), getFunctionUsage(), CheckClass::hasAllocation(), CheckClass::hasAllocationInIfScope(), CheckClass::hasAssignSelf(), CheckClass::initializeVarList(), isContainerSizeChangedByFunction(), CheckUnusedVar::isFunctionWithoutSideEffects(), CheckUnusedVar::isRecordTypeWithoutSideEffects(), CheckExceptionSafety::unhandledExceptionSpecification(), valueFlowForward(), valueFlowSubFunction(), and CheckMemoryLeakInClass::variable().
nonneg int Function::initArgCount {} |
number of args with default values
Definition at line 913 of file symboldatabase.h.
Referenced by addArguments().
|
private |
Definition at line 949 of file symboldatabase.h.
const Scope* Function::nestedIn {} |
Scope the function is declared in.
Definition at line 911 of file symboldatabase.h.
Referenced by SymbolDatabase::addClassFunction(), argsMatch(), CheckAssert::assertWithSideEffects(), CheckClass::checkVirtualFunctionCallInConstructor(), CheckClass::constructors(), SymbolDatabase::createSymbolDatabaseFindAllScopes(), Scope::findFunction(), fullName(), getOverloadedFunctions(), getOverriddenFunction(), CheckClass::getVirtualFunctionCalls(), CheckClass::initializeVarList(), isSafe(), isUniqueExpression(), CheckSizeof::sizeofFunction(), and valueFlowLifetimeUserConstructor().
const Token* Function::noexceptArg {} |
noexcept token
Definition at line 915 of file symboldatabase.h.
Referenced by functionThrowsRecursive().
const Token* Function::retDef {} |
function return type token
Definition at line 908 of file symboldatabase.h.
Referenced by CheckClass::checkConst(), CheckType::checkFloatToIntegerOverflow(), CheckClass::checkReturnByReference(), Function(), inBooleanFunction(), CheckIO::ArgumentInfo::isStdVectorOrString(), isUniqueExpression(), CheckClass::operatorEqToSelf(), CheckBool::returnValueOfFunctionReturningBool(), SymbolDatabase::setValueTypeInTokenList(), and Token::typeDecl().
const ::Type* Function::retType {} |
function return type
Definition at line 909 of file symboldatabase.h.
Referenced by CheckClass::checkConstFunc(), isUniqueExpression(), and Token::typeOf().
const Token* Function::templateDef {} |
points to 'template <' before function
Definition at line 917 of file symboldatabase.h.
Referenced by CheckClass::checkExplicitConstructors(), ValueType::matchParameter(), and setFlags().
const Token* Function::throwArg {} |
throw token
Definition at line 916 of file symboldatabase.h.
Referenced by Function(), functionThrowsRecursive(), and CheckExceptionSafety::unhandledExceptionSpecification().
const Token* Function::token {} |
function name token in implementation
Definition at line 906 of file symboldatabase.h.
Referenced by SymbolDatabase::addClassFunction(), CheckClass::checkConst(), CheckClass::checkReturnPtrThis(), CheckClass::checkUselessOverride(), CheckClass::constructors(), CheckClass::copyconstructors(), SymbolDatabase::createSymbolDatabaseFindAllScopes(), SymbolDatabase::createSymbolDatabaseSetFunctionPointers(), exprDependsOnThis(), Function(), isSafe(), CheckNullPointer::nullConstantDereference(), CheckClass::operatorEqToSelf(), CheckUnusedFunctions::parseTokens(), Check64BitPortability::pointerassignment(), and CheckClass::virtualDestructor().
const Token* Function::tokenDef {} |
function name token in class definition
Definition at line 904 of file symboldatabase.h.
Referenced by Scope::addFunction(), CheckClass::checkConst(), CheckClass::checkExplicitConstructors(), CheckOther::checkRedundantCopy(), CheckClass::checkUselessOverride(), CheckClass::constructors(), CheckClass::copyconstructors(), SymbolDatabase::createSymbolDatabaseSetFunctionPointers(), Function(), CheckClass::getFirstVirtualFunctionCallStack(), getOverloadedFunctions(), getOverriddenFunctionRecursive(), CheckClass::initializeVarList(), isUniqueExpression(), CheckClass::overrideError(), CheckClass::returnByReferenceError(), SymbolDatabase::setValueTypeInTokenList(), CheckStl::string_c_str(), tokenIsFunctionReturningBool(), CheckExceptionSafety::unhandledExceptionSpecification(), CheckClass::uselessOverrideError(), and CheckClass::virtualFunctionCallInConstructorError().
constructor, destructor, ...
Definition at line 914 of file symboldatabase.h.
Referenced by addArguments(), CheckClass::canNotCopy(), CheckClass::canNotMove(), CheckClass::checkConst(), CheckClass::checkCopyCtorAndEqOperator(), CheckClass::checkExplicitConstructors(), CheckMemoryLeakInClass::checkPublicFunctions(), CheckClass::checkThisUseAfterFree(), CheckClass::constructors(), CheckClass::copyconstructors(), SymbolDatabase::createSymbolDatabaseNeedInitialization(), Function(), Type::getFunction(), getOverriddenFunctionRecursive(), hasNonCopyableBase(), CheckClass::initializeVarList(), isUniqueExpression(), CheckClass::operatorEqToSelf(), CheckUnusedFunctions::parseTokens(), CheckClass::privateFunctions(), CheckClass::pureVirtualFunctionCallInConstructorError(), and CheckClass::virtualFunctionCallInConstructorError().