fixed gcc compiler warnings (comparing float values)
This commit is contained in:
parent
89ec49508d
commit
4633979ff7
|
@ -3891,23 +3891,38 @@ bool Tokenizer::simplifyConditions()
|
||||||
if (Token::Match(tok->tokAt(1), "%num%"))
|
if (Token::Match(tok->tokAt(1), "%num%"))
|
||||||
{
|
{
|
||||||
// Compare numbers
|
// Compare numbers
|
||||||
double op1 = MathLib::toDoubleNumber(tok->strAt(1));
|
|
||||||
double op2 = MathLib::toDoubleNumber(tok->strAt(3));
|
|
||||||
|
|
||||||
if (cmp == "==")
|
if (cmp == "==" || cmp == "!=")
|
||||||
result = (op1 == op2);
|
{
|
||||||
else if (cmp == "!=")
|
const std::string op1(tok->strAt(1));
|
||||||
result = (op1 != op2);
|
const std::string op2(tok->strAt(3));
|
||||||
else if (cmp == ">=")
|
|
||||||
result = (op1 >= op2);
|
bool eq = false;
|
||||||
else if (cmp == ">")
|
if (MathLib::isInt(op1) && MathLib::isInt(op2))
|
||||||
result = (op1 > op2);
|
eq = (MathLib::toLongNumber(op1) == MathLib::toLongNumber(op2));
|
||||||
else if (cmp == "<=")
|
else
|
||||||
result = (op1 <= op2);
|
eq = (op1 == op2);
|
||||||
else if (cmp == "<")
|
|
||||||
result = (op1 < op2);
|
if (cmp == "==")
|
||||||
|
result = eq;
|
||||||
|
else
|
||||||
|
result = !eq;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
cmp = "";
|
{
|
||||||
|
double op1 = MathLib::toDoubleNumber(tok->strAt(1));
|
||||||
|
double op2 = MathLib::toDoubleNumber(tok->strAt(3));
|
||||||
|
if (cmp == ">=")
|
||||||
|
result = (op1 >= op2);
|
||||||
|
else if (cmp == ">")
|
||||||
|
result = (op1 > op2);
|
||||||
|
else if (cmp == "<=")
|
||||||
|
result = (op1 <= op2);
|
||||||
|
else if (cmp == "<")
|
||||||
|
result = (op1 < op2);
|
||||||
|
else
|
||||||
|
cmp = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue