MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / printVariable

Method printVariable

lib/symboldatabase.cpp:4136–4204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4134}
4135
4136void SymbolDatabase::printVariable(const Variable *var, const char *indent) const
4137{
4138 std::cout << indent << "mNameToken: " << tokenToString(var->nameToken(), mTokenizer) << std::endl;
4139 if (var->nameToken()) {
4140 std::cout << indent << " declarationId: " << var->declarationId() << std::endl;
4141 }
4142 std::cout << indent << "mTypeStartToken: " << tokenToString(var->typeStartToken(), mTokenizer) << std::endl;
4143 std::cout << indent << "mTypeEndToken: " << tokenToString(var->typeEndToken(), mTokenizer) << std::endl;
4144
4145 if (var->typeStartToken()) {
4146 const Token * autoTok = nullptr;
4147 std::cout << indent << " ";
4148 for (const Token * tok = var->typeStartToken(); tok != var->typeEndToken()->next(); tok = tok->next()) {
4149 std::cout << " " << tokenType(tok);
4150 if (tok->str() == "auto")
4151 autoTok = tok;
4152 }
4153 std::cout << std::endl;
4154 if (autoTok) {
4155 const ValueType * valueType = autoTok->valueType();
4156 std::cout << indent << " auto valueType: " << valueType << std::endl;
4157 if (var->typeStartToken()->valueType()) {
4158 std::cout << indent << " " << valueType->str() << std::endl;
4159 }
4160 }
4161 } else if (var->valueType()) {
4162 std::cout << indent << " " << var->valueType()->str() << std::endl;
4163 }
4164 std::cout << indent << "mIndex: " << var->index() << std::endl;
4165 std::cout << indent << "mAccess: " << accessControlToString(var->accessControl()) << std::endl;
4166 std::cout << indent << "mFlags: " << std::endl;
4167 std::cout << indent << " isMutable: " << var->isMutable() << std::endl;
4168 std::cout << indent << " isStatic: " << var->isStatic() << std::endl;
4169 std::cout << indent << " isExtern: " << var->isExtern() << std::endl;
4170 std::cout << indent << " isLocal: " << var->isLocal() << std::endl;
4171 std::cout << indent << " isConst: " << var->isConst() << std::endl;
4172 std::cout << indent << " isClass: " << var->isClass() << std::endl;
4173 std::cout << indent << " isArray: " << var->isArray() << std::endl;
4174 std::cout << indent << " isPointer: " << var->isPointer() << std::endl;
4175 std::cout << indent << " isReference: " << var->isReference() << std::endl;
4176 std::cout << indent << " isRValueRef: " << var->isRValueReference() << std::endl;
4177 std::cout << indent << " hasDefault: " << var->hasDefault() << std::endl;
4178 std::cout << indent << " isStlType: " << var->isStlType() << std::endl;
4179 std::cout << indent << "mType: ";
4180 if (var->type()) {
4181 std::cout << var->type()->type() << " " << var->type()->name();
4182 std::cout << " " << mTokenizer.list.fileLine(var->type()->classDef);
4183 std::cout << " " << var->type() << std::endl;
4184 } else
4185 std::cout << "none" << std::endl;
4186
4187 if (var->nameToken()) {
4188 const ValueType * valueType = var->nameToken()->valueType();
4189 std::cout << indent << "valueType: " << valueType << std::endl;
4190 if (valueType) {
4191 std::cout << indent << " " << valueType->str() << std::endl;
4192 }
4193 }

Callers

nothing calls this directly

Calls 15

tokenToStringFunction · 0.85
tokenTypeFunction · 0.85
accessControlToStringFunction · 0.85
scopeToStringFunction · 0.85
nextMethod · 0.80
isConstMethod · 0.80
isClassMethod · 0.80
isArrayMethod · 0.80
typeMethod · 0.80
fileLineMethod · 0.80
scopeMethod · 0.80
nameTokenMethod · 0.45

Tested by

no test coverage detected