Fixed #8578 (Argument scope as global)

This commit is contained in:
Daniel Marjamäki 2018-06-19 08:50:32 +02:00
parent a660ccaec8
commit 9edcae97fc
2 changed files with 11 additions and 4 deletions

View File

@ -356,10 +356,11 @@ class Variable:
http://cppcheck.net/devinfo/doxyoutput/classVariable.html http://cppcheck.net/devinfo/doxyoutput/classVariable.html
Attributes: Attributes:
nameToken name token in variable declaration nameToken Name token in variable declaration
typeStartToken start token of variable declaration typeStartToken Start token of variable declaration
typeEndToken end token of variable declaration typeEndToken End token of variable declaration
access Global/Local/Namespace/Public/Protected/Public/Throw/Argument access Global/Local/Namespace/Public/Protected/Public/Throw/Argument
scope Variable scope
isArgument Is this variable a function argument? isArgument Is this variable a function argument?
isArray Is this variable an array? isArray Is this variable an array?
isClass Is this variable a class or struct? isClass Is this variable a class or struct?
@ -380,6 +381,8 @@ class Variable:
typeEndTokenId = None typeEndTokenId = None
typeEndToken = None typeEndToken = None
access = None access = None
scopeId = None
scope = None
isArgument = False isArgument = False
isArray = False isArray = False
isClass = False isClass = False
@ -400,6 +403,8 @@ class Variable:
self.typeEndTokenId = element.get('typeEndToken') self.typeEndTokenId = element.get('typeEndToken')
self.typeEndToken = None self.typeEndToken = None
self.access = element.get('access') self.access = element.get('access')
self.scopeId = element.get('scope')
self.scope = None
self.isArgument = element.get('isArgument') == 'true' self.isArgument = element.get('isArgument') == 'true'
self.isArray = element.get('isArray') == 'true' self.isArray = element.get('isArray') == 'true'
self.isClass = element.get('isClass') == 'true' self.isClass = element.get('isClass') == 'true'
@ -417,6 +422,7 @@ class Variable:
self.nameToken = IdMap[self.nameTokenId] self.nameToken = IdMap[self.nameTokenId]
self.typeStartToken = IdMap[self.typeStartTokenId] self.typeStartToken = IdMap[self.typeStartTokenId]
self.typeEndToken = IdMap[self.typeEndTokenId] self.typeEndToken = IdMap[self.typeEndTokenId]
self.scope = IdMap[self.scopeId]
class ValueFlow: class ValueFlow:

View File

@ -2995,6 +2995,8 @@ void SymbolDatabase::printXml(std::ostream &out) const
out << " nameToken=\"" << var->nameToken() << '\"'; out << " nameToken=\"" << var->nameToken() << '\"';
out << " typeStartToken=\"" << var->typeStartToken() << '\"'; out << " typeStartToken=\"" << var->typeStartToken() << '\"';
out << " typeEndToken=\"" << var->typeEndToken() << '\"'; out << " typeEndToken=\"" << var->typeEndToken() << '\"';
out << " access=\"" << accessControlToString(var->mAccess) << '\"';
out << " scope=\"" << var->scope() << '\"';
out << " isArgument=\"" << var->isArgument() << '\"'; out << " isArgument=\"" << var->isArgument() << '\"';
out << " isArray=\"" << var->isArray() << '\"'; out << " isArray=\"" << var->isArray() << '\"';
out << " isClass=\"" << var->isClass() << '\"'; out << " isClass=\"" << var->isClass() << '\"';
@ -3005,7 +3007,6 @@ void SymbolDatabase::printXml(std::ostream &out) const
out << " isReference=\"" << var->isReference() << '\"'; out << " isReference=\"" << var->isReference() << '\"';
out << " isStatic=\"" << var->isStatic() << '\"'; out << " isStatic=\"" << var->isStatic() << '\"';
out << " constness=\"" << var->constness() << '\"'; out << " constness=\"" << var->constness() << '\"';
out << " access=\"" << accessControlToString(var->mAccess) << '\"';
out << "/>" << std::endl; out << "/>" << std::endl;
} }
out << " </variables>" << std::endl; out << " </variables>" << std::endl;