@@ -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