From cda44e0c397c36586818679ccef3e1cfa5181773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sat, 20 Nov 2010 11:48:03 +0100 Subject: [PATCH] VS: Fixed compiler warnings --- lib/checkbufferoverrun.cpp | 54 +++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/lib/checkbufferoverrun.cpp b/lib/checkbufferoverrun.cpp index a84ab0263..47664e66c 100644 --- a/lib/checkbufferoverrun.cpp +++ b/lib/checkbufferoverrun.cpp @@ -232,8 +232,8 @@ static bool for_condition(const Token * const tok2, unsigned int varid, std::str if (Token::Match(tok2, "%varid% < %num% ;", varid)) { maxMinFlipped = false; - long value = MathLib::toLongNumber(tok2->strAt(2)); - max_value = MathLib::toString(value - 1); + const MathLib::bigint value = MathLib::toLongNumber(tok2->strAt(2)); + max_value = MathLib::toString(value - 1); } else if (Token::Match(tok2, "%varid% <= %num% ;", varid)) { @@ -243,9 +243,9 @@ static bool for_condition(const Token * const tok2, unsigned int varid, std::str else if (Token::Match(tok2, " %num% < %varid% ;", varid)) { maxMinFlipped = true; - long value = MathLib::toLongNumber(tok2->str()); + const MathLib::bigint value = MathLib::toLongNumber(tok2->str()); max_value = min_value; - min_value = MathLib::toString(value + 1); + min_value = MathLib::toString(value + 1); } else if (Token::Match(tok2, "%num% <= %varid% ;", varid)) { @@ -286,28 +286,28 @@ static bool for3(const Token * const tok, if (!MathLib::isInt(tok->strAt(2))) return false; - const int num = MathLib::toLongNumber(tok->strAt(2)); + const MathLib::bigint num = MathLib::toLongNumber(tok->strAt(2)); // We have for example code: "for(i=2;i<22;i+=6) // We can calculate that max value for i is 20, not 21 // 21-2 = 19 // 19/6 = 3 // 6*3+2 = 20 - long max = MathLib::toLongNumber(max_value); - long min = MathLib::toLongNumber(min_value); + MathLib::bigint max = MathLib::toLongNumber(max_value); + MathLib::bigint min = MathLib::toLongNumber(min_value); max = ((max - min) / num) * num + min; - max_value = MathLib::toString(max); + max_value = MathLib::toString(max); } else if (Token::Match(tok, "%varid% = %varid% + %num% )", varid)) { if (!MathLib::isInt(tok->strAt(4))) return false; - const int num = MathLib::toLongNumber(tok->strAt(4)); - long max = MathLib::toLongNumber(max_value); - long min = MathLib::toLongNumber(min_value); + const MathLib::bigint num = MathLib::toLongNumber(tok->strAt(4)); + MathLib::bigint max = MathLib::toLongNumber(max_value); + MathLib::bigint min = MathLib::toLongNumber(min_value); max = ((max - min) / num) * num + min; - max_value = MathLib::toString(max); + max_value = MathLib::toString(max); } else if (Token::Match(tok, "%varid% -= %num% )", varid) || Token::Match(tok, "%varid% = %num% - %varid% )", varid)) @@ -315,23 +315,23 @@ static bool for3(const Token * const tok, if (!MathLib::isInt(tok->strAt(2))) return false; - const int num = MathLib::toLongNumber(tok->strAt(2)); + const MathLib::bigint num = MathLib::toLongNumber(tok->strAt(2)); - long max = MathLib::toLongNumber(max_value); - long min = MathLib::toLongNumber(min_value); + MathLib::bigint max = MathLib::toLongNumber(max_value); + MathLib::bigint min = MathLib::toLongNumber(min_value); max = ((max - min) / num) * num + min; - max_value = MathLib::toString(max); + max_value = MathLib::toString(max); } else if (Token::Match(tok, "%varid% = %varid% - %num% )", varid)) { if (!MathLib::isInt(tok->strAt(4))) return false; - const int num = MathLib::toLongNumber(tok->strAt(4)); - long max = MathLib::toLongNumber(max_value); - long min = MathLib::toLongNumber(min_value); + const MathLib::bigint num = MathLib::toLongNumber(tok->strAt(4)); + MathLib::bigint max = MathLib::toLongNumber(max_value); + MathLib::bigint min = MathLib::toLongNumber(min_value); max = ((max - min) / num) * num + min; - max_value = MathLib::toString(max); + max_value = MathLib::toString(max); } else if (Token::Match(tok, "--| %varid% --| )", varid)) { @@ -509,7 +509,7 @@ void CheckBufferOverrun::checkFunctionCall(const Token &tok, unsigned int par, c { if (Token::Match(tok2, ", %num% ,|)")) { - const long sz = MathLib::toLongNumber(tok2->strAt(1)); + const MathLib::bigint sz = MathLib::toLongNumber(tok2->strAt(1)); unsigned int elements = 1; for (unsigned int i = 0; i < arrayInfo.num.size(); ++i) elements *= arrayInfo.num[i]; @@ -531,7 +531,7 @@ void CheckBufferOverrun::checkFunctionCall(const Token &tok, unsigned int par, c { if (Token::Match(tok2, ", %num% , %num% ,|)")) { - const long sz = MathLib::toLongNumber(tok2->strAt(1)) * MathLib::toLongNumber(tok2->strAt(3)); + const MathLib::bigint sz = MathLib::toLongNumber(MathLib::multiply(tok2->strAt(1), tok2->strAt(3))); unsigned int elements = 1; for (unsigned int i = 0; i < arrayInfo.num.size(); ++i) elements *= arrayInfo.num[i]; @@ -813,7 +813,7 @@ void CheckBufferOverrun::checkScope(const Token *tok, const std::vector 0 ? std::string("snprintf ( %varid% , %num% ,") : ("snprintf ( " + varnames + " , %num% ,"); if (Token::Match(tok, snprintfPattern.c_str(), varid)) { - const long n = MathLib::toLongNumber(tok->strAt(4 + varc)); + const MathLib::bigint n = MathLib::toLongNumber(tok->strAt(4 + varc)); if (n > total_size) outOfBounds(tok->tokAt(4 + varc), "snprintf size"); } @@ -851,7 +851,7 @@ void CheckBufferOverrun::checkScope(const Token *tok, const ArrayInfo &arrayInfo std::vector indexes; for (const Token *tok2 = tok->next(); Token::Match(tok2, "[ %num% ]"); tok2 = tok2->tokAt(3)) { - const long index = MathLib::toLongNumber(tok2->strAt(1)); + const MathLib::bigint index = MathLib::toLongNumber(tok2->strAt(1)); if (index < 0) { indexes.clear(); @@ -1006,7 +1006,7 @@ void CheckBufferOverrun::checkScope(const Token *tok, const ArrayInfo &arrayInfo { if (tok->str() == "strncat") { - const long n = MathLib::toLongNumber(tok->strAt(6)); + const MathLib::bigint n = MathLib::toLongNumber(tok->strAt(6)); if (static_cast(n) >= total_size) strncatUsage(tok); } @@ -1014,7 +1014,7 @@ void CheckBufferOverrun::checkScope(const Token *tok, const ArrayInfo &arrayInfo // Dangerous usage of strncpy + strncat.. if (Token::Match(tok->tokAt(8), "; strncat ( %varid% , %any% , %num% )", arrayInfo.varid)) { - const long n = MathLib::toLongNumber(tok->strAt(6)) + MathLib::toLongNumber(tok->strAt(15)); + const MathLib::bigint n = MathLib::toLongNumber(tok->strAt(6)) + MathLib::toLongNumber(tok->strAt(15)); if (static_cast(n) > total_size) strncatUsage(tok->tokAt(9)); } @@ -1058,7 +1058,7 @@ void CheckBufferOverrun::checkScope(const Token *tok, const ArrayInfo &arrayInfo // snprintf.. if (total_size > 0 && Token::Match(tok, "snprintf ( %varid% , %num% ,", arrayInfo.varid)) { - const long n = MathLib::toLongNumber(tok->strAt(4)); + const MathLib::bigint n = MathLib::toLongNumber(tok->strAt(4)); if (static_cast(n) > total_size) outOfBounds(tok->tokAt(4), "snprintf size"); }