From d4f7519e64d2246be81b24b8e5fc72c8abccb759 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Wed, 27 Sep 2017 13:08:24 -0700 Subject: fix ExpressionAnalyzer::equals on consts, they need to be bitwise equal, i.e., 0 != -0 --- src/ast/ExpressionAnalyzer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/ast/ExpressionAnalyzer.cpp') diff --git a/src/ast/ExpressionAnalyzer.cpp b/src/ast/ExpressionAnalyzer.cpp index 8a372c2db..3556fcdd5 100644 --- a/src/ast/ExpressionAnalyzer.cpp +++ b/src/ast/ExpressionAnalyzer.cpp @@ -252,7 +252,9 @@ bool ExpressionAnalyzer::flexibleEqual(Expression* left, Expression* right, Expr break; } case Expression::Id::ConstId: { - CHECK(Const, value); + if (!left->cast()->value.bitwiseEqual(right->cast()->value)) { + return false; + } break; } case Expression::Id::UnaryId: { -- cgit v1.2.3