#5888 fsanitize=undefined: signed integer overflow: 4611686018427387904 * 2 cannot be represented in type 'long long int' in valueflow.cpp
This commit is contained in:
parent
c6ec5ca734
commit
c70b71e353
|
@ -1782,9 +1782,12 @@ static void execute(const Token *expr,
|
|||
*result = result1 + result2;
|
||||
else if (expr->str() == "-")
|
||||
*result = result1 - result2;
|
||||
else if (expr->str() == "*")
|
||||
*result = result1 * result2;
|
||||
else if (result2 == 0)
|
||||
else if (expr->str() == "*") {
|
||||
if (result2 && (result1 > std::numeric_limits<MathLib::bigint>::max()/result2))
|
||||
*error = true;
|
||||
else
|
||||
*result = result1 * result2;
|
||||
} else if (result2 == 0)
|
||||
*error = true;
|
||||
else if (expr->str() == "/")
|
||||
*result = result1 / result2;
|
||||
|
|
Loading…
Reference in New Issue