@@ -590,7 +590,7 @@ static std::vector<const Token*> getParentMembers(const Token* tok)
590590 for (const Token* tok2 : astFlatten (parent, " ." )) {
591591 if (Token::simpleMatch (tok2, " (" ) && Token::simpleMatch (tok2->astOperand1 (), " ." )) {
592592 std::vector<const Token*> sub = getParentMembers (tok2->astOperand1 ());
593- result.insert (result.end (), sub.begin (), sub.end ());
593+ result.insert (result.end (), sub.cbegin (), sub.cend ());
594594 }
595595 result.push_back (tok2);
596596 }
@@ -603,7 +603,7 @@ const Token* getParentLifetime(bool cpp, const Token* tok, const Library* librar
603603 if (members.size () < 2 )
604604 return tok;
605605 // Find the first local variable or temporary
606- auto it = std::find_if (members.rbegin (), members.rend (), [&](const Token* tok2) {
606+ auto it = std::find_if (members.crbegin (), members.crend (), [&](const Token* tok2) {
607607 const Variable* var = tok2->variable ();
608608 if (var) {
609609 return var->isLocal () || var->isArgument ();
@@ -614,7 +614,7 @@ const Token* getParentLifetime(bool cpp, const Token* tok, const Library* librar
614614 if (it == members.rend ())
615615 return tok;
616616 // If any of the submembers are borrowed types then stop
617- if (std::any_of (it.base () - 1 , members.end () - 1 , [&](const Token* tok2) {
617+ if (std::any_of (it.base () - 1 , members.cend () - 1 , [&](const Token* tok2) {
618618 if (astIsPointer (tok2) || astIsContainerView (tok2) || astIsIterator (tok2))
619619 return true ;
620620 if (!astIsUniqueSmartPointer (tok2)) {
@@ -700,7 +700,7 @@ std::vector<ValueType> getParentValueTypes(const Token* tok, const Settings* set
700700 if (scope && scope->numConstructors == 0 && t->derivedFrom .empty () &&
701701 (t->isClassType () || t->isStructType ()) && numberOfArguments (ftok) < scope->varlist .size ()) {
702702 assert (argn < scope->varlist .size ());
703- auto it = std::next (scope->varlist .begin (), argn);
703+ auto it = std::next (scope->varlist .cbegin (), argn);
704704 if (it->valueType ())
705705 return {*it->valueType ()};
706706 }
@@ -1141,7 +1141,7 @@ static void followVariableExpressionError(const Token *tok1, const Token *tok2,
11411141 if (!tok2)
11421142 return ;
11431143 ErrorPathItem item = std::make_pair (tok2, " '" + tok1->str () + " ' is assigned value '" + tok2->expressionString () + " ' here." );
1144- if (std::find (errors->begin (), errors->end (), item) != errors->end ())
1144+ if (std::find (errors->cbegin (), errors->cend (), item) != errors->cend ())
11451145 return ;
11461146 errors->push_back (std::move (item));
11471147}
@@ -1201,17 +1201,17 @@ SmallVector<ReferenceToken> followAllReferences(const Token* tok,
12011201 const Token* tok2 = tok->astOperand2 ();
12021202
12031203 auto refs = followAllReferences (tok2->astOperand1 (), temporary, inconclusive, errors, depth - 1 );
1204- result.insert (refs.begin (), refs.end ());
1204+ result.insert (refs.cbegin (), refs.cend ());
12051205 refs = followAllReferences (tok2->astOperand2 (), temporary, inconclusive, errors, depth - 1 );
1206- result.insert (refs.begin (), refs.end ());
1206+ result.insert (refs.cbegin (), refs.cend ());
12071207
12081208 if (!inconclusive && result.size () != 1 ) {
12091209 refs_result.push_back ({tok, std::move (errors)});
12101210 return refs_result;
12111211 }
12121212
12131213 if (!result.empty ()) {
1214- refs_result.insert (refs_result.end (), result.begin (), result.end ());
1214+ refs_result.insert (refs_result.end (), result.cbegin (), result.cend ());
12151215 return refs_result;
12161216 }
12171217
@@ -1251,7 +1251,7 @@ SmallVector<ReferenceToken> followAllReferences(const Token* tok,
12511251 er.emplace_back (tok->previous (), " Called function passing '" + argTok->expressionString () + " '." );
12521252 auto refs =
12531253 followAllReferences (argTok, temporary, inconclusive, std::move (er), depth - returns.size ());
1254- result.insert (refs.begin (), refs.end ());
1254+ result.insert (refs.cbegin (), refs.cend ());
12551255 if (!inconclusive && result.size () > 1 ) {
12561256 refs_result.push_back ({tok, std::move (errors)});
12571257 return refs_result;
@@ -1260,7 +1260,7 @@ SmallVector<ReferenceToken> followAllReferences(const Token* tok,
12601260 }
12611261 }
12621262 if (!result.empty ()) {
1263- refs_result.insert (refs_result.end (), result.begin (), result.end ());
1263+ refs_result.insert (refs_result.end (), result.cbegin (), result.cend ());
12641264 return refs_result;
12651265 }
12661266 }
@@ -1297,13 +1297,13 @@ static bool compareKnownValue(const Token * const tok1, const Token * const tok2
12971297{
12981298 static const auto isKnownFn = std::mem_fn (&ValueFlow::Value::isKnown);
12991299
1300- const auto v1 = std::find_if (tok1->values ().begin (), tok1->values ().end (), isKnownFn);
1300+ const auto v1 = std::find_if (tok1->values ().cbegin (), tok1->values ().cend (), isKnownFn);
13011301 if (v1 == tok1->values ().end ()) {
13021302 return false ;
13031303 }
13041304 if (v1->isNonValue () || v1->isContainerSizeValue () || v1->isSymbolicValue ())
13051305 return false ;
1306- const auto v2 = std::find_if (tok2->values ().begin (), tok2->values ().end (), isKnownFn);
1306+ const auto v2 = std::find_if (tok2->values ().cbegin (), tok2->values ().cend (), isKnownFn);
13071307 if (v2 == tok2->values ().end ()) {
13081308 return false ;
13091309 }
@@ -1419,7 +1419,7 @@ bool isUsedAsBool(const Token* const tok)
14191419 return true ;
14201420 if (!Token::Match (parent, " %cop%" )) {
14211421 std::vector<ValueType> vtParents = getParentValueTypes (tok);
1422- return std::any_of (vtParents.begin (), vtParents.end (), [&](const ValueType& vt) {
1422+ return std::any_of (vtParents.cbegin (), vtParents.cend (), [&](const ValueType& vt) {
14231423 return vt.pointer == 0 && vt.type == ValueType::BOOL;
14241424 });
14251425 }
@@ -1837,7 +1837,7 @@ bool isOppositeExpression(bool cpp, const Token * const tok1, const Token * cons
18371837
18381838static bool functionModifiesArguments (const Function* f)
18391839{
1840- return std::any_of (f->argumentList .begin (), f->argumentList .end (), [](const Variable& var) {
1840+ return std::any_of (f->argumentList .cbegin (), f->argumentList .cend (), [](const Variable& var) {
18411841 if (var.isReference () || var.isPointer ())
18421842 return !var.isConst ();
18431843 return true ;
@@ -1865,7 +1865,7 @@ bool isConstFunctionCall(const Token* ftok, const Library& library)
18651865 // Check for const overloaded function that just return the const version
18661866 if (!Function::returnsConst (f)) {
18671867 std::vector<const Function*> fs = f->getOverloadedFunctions ();
1868- if (std::any_of (fs.begin (), fs.end (), [&](const Function* g) {
1868+ if (std::any_of (fs.cbegin (), fs.cend (), [&](const Function* g) {
18691869 if (f == g)
18701870 return false ;
18711871 if (f->argumentList .size () != g->argumentList .size ())
@@ -1914,7 +1914,7 @@ bool isConstFunctionCall(const Token* ftok, const Library& library)
19141914 std::vector<const Token*> args = getArguments (ftok);
19151915 if (args.empty ())
19161916 return false ;
1917- return constMember && std::all_of (args.begin (), args.end (), [](const Token* tok) {
1917+ return constMember && std::all_of (args.cbegin (), args.cend (), [](const Token* tok) {
19181918 const Variable* var = tok->variable ();
19191919 if (var)
19201920 return var->isConst ();
@@ -2265,7 +2265,7 @@ std::vector<const Variable*> getArgumentVars(const Token* tok, int argnr)
22652265 const bool tokIsBrace = Token::simpleMatch (tok, " {" );
22662266 // Aggregate constructor
22672267 if (tokIsBrace && typeScope->numConstructors == 0 && argnr < typeScope->varlist .size ()) {
2268- auto it = std::next (typeScope->varlist .begin (), argnr);
2268+ auto it = std::next (typeScope->varlist .cbegin (), argnr);
22692269 return {&*it};
22702270 }
22712271 const int argCount = numberOfArguments (tok);
@@ -2714,15 +2714,15 @@ bool isVariableChanged(const Variable * var, const Settings *settings, bool cpp,
27142714bool isVariablesChanged (const Token* start,
27152715 const Token* end,
27162716 int indirect,
2717- std::vector<const Variable*> vars,
2717+ const std::vector<const Variable*> & vars,
27182718 const Settings* settings,
27192719 bool cpp)
27202720{
27212721 std::set<int > varids;
2722- std::transform (vars.begin (), vars.end (), std::inserter (varids, varids.begin ()), [](const Variable* var) {
2722+ std::transform (vars.cbegin (), vars.cend (), std::inserter (varids, varids.begin ()), [](const Variable* var) {
27232723 return var->declarationId ();
27242724 });
2725- const bool globalvar = std::any_of (vars.begin (), vars.end (), [](const Variable* var) {
2725+ const bool globalvar = std::any_of (vars.cbegin (), vars.cend (), [](const Variable* var) {
27262726 return var->isGlobal ();
27272727 });
27282728 for (const Token* tok = start; tok != end; tok = tok->next ()) {
@@ -2840,12 +2840,12 @@ std::vector<const Token*> getArguments(const Token* ftok) {
28402840
28412841int getArgumentPos (const Variable* var, const Function* f)
28422842{
2843- auto arg_it = std::find_if (f->argumentList .begin (), f->argumentList .end (), [&](const Variable& v) {
2843+ auto arg_it = std::find_if (f->argumentList .cbegin (), f->argumentList .cend (), [&](const Variable& v) {
28442844 return v.nameToken () == var->nameToken ();
28452845 });
28462846 if (arg_it == f->argumentList .end ())
28472847 return -1 ;
2848- return std::distance (f->argumentList .begin (), arg_it);
2848+ return std::distance (f->argumentList .cbegin (), arg_it);
28492849}
28502850
28512851bool isIteratorPair (std::vector<const Token*> args)
@@ -2954,7 +2954,7 @@ bool isConstVarExpression(const Token *tok, std::function<bool(const Token*)> sk
29542954 std::vector<const Token *> args = getArguments (tok);
29552955 if (args.empty () && tok->previous ()->function () && tok->previous ()->function ()->isConstexpr ())
29562956 return true ;
2957- return !args.empty () && std::all_of (args.begin (), args.end (), [&](const Token* t) {
2957+ return !args.empty () && std::all_of (args.cbegin (), args.cend (), [&](const Token* t) {
29582958 return isConstVarExpression (t, skipPredicate);
29592959 });
29602960 }
0 commit comments