@@ -1933,7 +1933,7 @@ static void valueFlowEnumValue(SymbolDatabase * symboldatabase, const Settings *
19331933
19341934 for (Enumerator & enumerator : scope.enumeratorList) {
19351935 if (enumerator.start) {
1936- Token * rhs = enumerator.start->previous()->astOperand2();
1936+ Token* rhs = const_cast<Token*>( enumerator.start->previous()->astOperand2() );
19371937 ValueFlow::valueFlowConstantFoldAST(rhs, settings);
19381938 if (rhs && rhs->hasKnownIntValue()) {
19391939 enumerator.value = rhs->values().front().intvalue;
@@ -5189,10 +5189,10 @@ static void valueFlowConditionExpressions(TokenList *tokenlist, SymbolDatabase*
51895189 }
51905190 }
51915191
5192- for (const Token* tok = scope->bodyStart; tok != scope->bodyEnd; tok = tok->next()) {
5192+ for (Token* tok = const_cast<Token*>( scope->bodyStart) ; tok != scope->bodyEnd; tok = tok->next()) {
51935193 if (!Token::simpleMatch(tok, "if ("))
51945194 continue;
5195- const Token * parenTok = tok->next();
5195+ Token* parenTok = tok->next();
51965196 if (!Token::simpleMatch(parenTok->link(), ") {"))
51975197 continue;
51985198 Token * blockTok = parenTok->link()->tokAt(1);
@@ -5255,7 +5255,6 @@ static void valueFlowConditionExpressions(TokenList *tokenlist, SymbolDatabase*
52555255 }
52565256 }
52575257 }
5258-
52595258 }
52605259 }
52615260}
@@ -6150,7 +6149,7 @@ struct ConditionHandler {
61506149 if (tok->hasKnownIntValue())
61516150 return;
61526151
6153- const Token* top = tok->astTop();
6152+ Token* top = tok->astTop();
61546153
61556154 if (Token::Match(top, "%assign%"))
61566155 return;
@@ -6291,7 +6290,7 @@ struct ConditionHandler {
62916290 const Settings* settings,
62926291 const std::set<const Scope*>& skippedFunctions) const {
62936292 traverseCondition(tokenlist, symboldatabase, settings, skippedFunctions, [&](const Condition& cond, Token* condTok, const Scope* scope) {
6294- const Token* top = condTok->astTop();
6293+ Token* top = condTok->astTop();
62956294
62966295 const MathLib::bigint path = cond.getPath();
62976296 const bool allowKnown = path == 0;
@@ -7507,7 +7506,7 @@ static void valueFlowSubFunction(TokenList* tokenlist, SymbolDatabase* symboldat
75077506 const Function* function = scope->function;
75087507 if (!function)
75097508 continue;
7510- for (const Token * tok = scope->bodyStart; tok != scope->bodyEnd; tok = tok->next()) {
7509+ for (Token* tok = const_cast<Token*>( scope->bodyStart) ; tok != scope->bodyEnd; tok = tok->next()) {
75117510 if (tok->isKeyword() || !Token::Match(tok, "%name% ("))
75127511 continue;
75137512
@@ -8296,8 +8295,8 @@ static void valueFlowIterators(TokenList *tokenlist, const Settings *settings)
82968295 continue;
82978296 if (!astIsContainer(tok))
82988297 continue;
8299- const Token* ftok = nullptr;
8300- const Library::Container::Yield yield = findIteratorYield(tok, &ftok, settings);
8298+ Token* ftok = nullptr;
8299+ const Library::Container::Yield yield = findIteratorYield(tok, const_cast<const Token**>( &ftok) , settings);
83018300 if (ftok) {
83028301 ValueFlow::Value v(0);
83038302 v.setKnown();
@@ -8573,39 +8572,39 @@ static void valueFlowContainerSize(TokenList* tokenlist,
85738572 }
85748573 if (!staticSize && nonLocal)
85758574 continue;
8576- if (var->nameToken()->hasKnownValue(ValueFlow::Value::ValueType::CONTAINER_SIZE))
8575+ Token* nameToken = const_cast<Token*>(var->nameToken());
8576+ if (nameToken->hasKnownValue(ValueFlow::Value::ValueType::CONTAINER_SIZE))
85778577 continue;
85788578 if (!staticSize) {
8579- if (!Token::Match(var->nameToken(), "%name% ;") &&
8580- !(Token::Match(var->nameToken(), "%name% {") &&
8581- Token::simpleMatch(var->nameToken()->next()->link(), "} ;")) &&
8582- !Token::Match(var->nameToken(), "%name% ("))
8579+ if (!Token::Match(nameToken, "%name% ;") &&
8580+ !(Token::Match(nameToken, "%name% {") && Token::simpleMatch(nameToken->next()->link(), "} ;")) &&
8581+ !Token::Match(nameToken, "%name% ("))
85838582 continue;
85848583 }
8585- if (var-> nameToken() ->astTop() && Token::Match(var-> nameToken() ->astTop()->previous(), "for|while"))
8584+ if (nameToken->astTop() && Token::Match(nameToken->astTop()->previous(), "for|while"))
85868585 known = !isVariableChanged(var, settings, true);
85878586 std::vector<ValueFlow::Value> values{ValueFlow::Value{size}};
85888587 values.back().valueType = ValueFlow::Value::ValueType::CONTAINER_SIZE;
85898588 if (known)
85908589 values.back().setKnown();
85918590 if (!staticSize) {
8592- if (Token::simpleMatch(var-> nameToken() ->next(), "{")) {
8593- Token* initList = var-> nameToken() ->next();
8594- valueFlowContainerSetTokValue(tokenlist, settings, var-> nameToken() , initList);
8591+ if (Token::simpleMatch(nameToken->next(), "{")) {
8592+ Token* initList = nameToken->next();
8593+ valueFlowContainerSetTokValue(tokenlist, settings, nameToken, initList);
85958594 values = getInitListSize(initList, var->valueType(), settings, known);
8596- } else if (Token::simpleMatch(var-> nameToken() ->next(), "(")) {
8597- const Token* constructorArgs = var-> nameToken() ->next();
8595+ } else if (Token::simpleMatch(nameToken->next(), "(")) {
8596+ const Token* constructorArgs = nameToken->next();
85988597 values = getContainerSizeFromConstructor(constructorArgs, var->valueType(), settings, known);
85998598 }
86008599 }
86018600
86028601 if (constSize) {
8603- valueFlowForwardConst(var-> nameToken() ->next(), var->scope()->bodyEnd, var, values, settings);
8602+ valueFlowForwardConst(nameToken->next(), var->scope()->bodyEnd, var, values, settings);
86048603 continue;
86058604 }
86068605
86078606 for (const ValueFlow::Value& value : values) {
8608- valueFlowForward(var-> nameToken() ->next(), var->nameToken(), value, tokenlist, settings);
8607+ valueFlowForward(nameToken->next(), var->nameToken(), value, tokenlist, settings);
86098608 }
86108609 }
86118610
0 commit comments