diff --git a/lib/checkbufferoverrun.cpp b/lib/checkbufferoverrun.cpp index 2f001289e..1ffe75305 100644 --- a/lib/checkbufferoverrun.cpp +++ b/lib/checkbufferoverrun.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -344,9 +345,10 @@ static std::string stringifyIndexes(const std::string &array, const std::vector< static std::string arrayIndexMessage(const Token *tok, const std::vector &dimensions, const std::vector &indexValues, const Token *condition) { - std::string array = tok->astOperand1()->expressionString(); - for (const Dimension &dim : dimensions) - array += "[" + MathLib::toString(dim.num) + "]"; + auto add_dim = [](const std::string &s, const Dimension &dim) { + return s + "[" + MathLib::toString(dim.num) + "]"; + }; + const std::string array = std::accumulate(dimensions.begin(), dimensions.end(), tok->astOperand1()->expressionString(), add_dim); std::ostringstream errmsg; if (condition)