symbol database: add a link from a Function to its Function Scope namd make function parameters belong to Function Scope
This commit is contained in:
parent
74105f5d83
commit
d643918761
|
@ -287,6 +287,7 @@ SymbolDatabase::SymbolDatabase(const Tokenizer *tokenizer, const Settings *setti
|
|||
{
|
||||
scope->functionOf = functionOf;
|
||||
scope->function = &functionOf->functionList.back();
|
||||
scope->function->functionScope = scope;
|
||||
}
|
||||
|
||||
tok = tok2;
|
||||
|
@ -980,7 +981,8 @@ void SymbolDatabase::addFunction(Scope **scope, const Token **tok, const Token *
|
|||
if (*scope)
|
||||
{
|
||||
(*scope)->functionOf = scope1;
|
||||
(*scope)->function = &scope1->functionList.back();
|
||||
(*scope)->function = &*func;
|
||||
(*scope)->function->functionScope = *scope;
|
||||
|
||||
added = true;
|
||||
}
|
||||
|
@ -1253,7 +1255,7 @@ void Function::addArguments(const SymbolDatabase *symbolDatabase, const Scope *s
|
|||
|
||||
bool isClassVar = startTok == endTok && !startTok->isStandardType();
|
||||
|
||||
argumentList.push_back(Variable(nameTok, startTok, endTok, count++, Argument, false, false, isConstVar, isClassVar, argType, scope, isArrayVar));
|
||||
argumentList.push_back(Variable(nameTok, startTok, endTok, count++, Argument, false, false, isConstVar, isClassVar, argType, functionScope, isArrayVar));
|
||||
|
||||
if (tok->str() == ")")
|
||||
break;
|
||||
|
|
|
@ -332,7 +332,8 @@ public:
|
|||
isExplicit(false),
|
||||
isOperator(false),
|
||||
retFuncPtr(false),
|
||||
type(eFunction)
|
||||
type(eFunction),
|
||||
functionScope(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -357,6 +358,7 @@ public:
|
|||
bool isOperator; // is operator
|
||||
bool retFuncPtr; // returns function pointer
|
||||
Type type; // constructor, destructor, ...
|
||||
Scope *functionScope; // scope of function body
|
||||
std::list<Variable> argumentList; // argument list
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue