From 74fad6ce05cac309866a10c02fef3e818ed7bb7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 28 Apr 2019 11:25:43 +0200 Subject: [PATCH] Modernizing; Use std::accumulate instead of for loop --- lib/checkbufferoverrun.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/checkbufferoverrun.cpp b/lib/checkbufferoverrun.cpp index 1ffe75305..b1df39f95 100644 --- a/lib/checkbufferoverrun.cpp +++ b/lib/checkbufferoverrun.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include // std::accumulate #include #include #include @@ -346,8 +346,8 @@ 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) { auto add_dim = [](const std::string &s, const Dimension &dim) { - return s + "[" + MathLib::toString(dim.num) + "]"; - }; + return s + "[" + MathLib::toString(dim.num) + "]"; + }; const std::string array = std::accumulate(dimensions.begin(), dimensions.end(), tok->astOperand1()->expressionString(), add_dim); std::ostringstream errmsg; @@ -508,9 +508,9 @@ ValueFlow::Value CheckBufferOverrun::getBufferSize(const Token *bufTok) const if (!var) return ValueFlow::Value(-1); - MathLib::bigint dim = 1; - for (const Dimension &d : var->dimensions()) - dim *= d.num; + MathLib::bigint dim = std::accumulate(var->dimensions().begin(), var->dimensions().end(), 1LL, [](MathLib::bigint i1, const Dimension &dim) { + return i1 * dim.num; + }); ValueFlow::Value v; v.setKnown();