#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;
|
*result = result1 + result2;
|
||||||
else if (expr->str() == "-")
|
else if (expr->str() == "-")
|
||||||
*result = result1 - result2;
|
*result = result1 - result2;
|
||||||
else if (expr->str() == "*")
|
else if (expr->str() == "*") {
|
||||||
|
if (result2 && (result1 > std::numeric_limits<MathLib::bigint>::max()/result2))
|
||||||
|
*error = true;
|
||||||
|
else
|
||||||
*result = result1 * result2;
|
*result = result1 * result2;
|
||||||
else if (result2 == 0)
|
} else if (result2 == 0)
|
||||||
*error = true;
|
*error = true;
|
||||||
else if (expr->str() == "/")
|
else if (expr->str() == "/")
|
||||||
*result = result1 / result2;
|
*result = result1 / result2;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user