summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2017-09-27 13:08:24 -0700
committerAlon Zakai <alonzakai@gmail.com>2017-09-27 13:08:24 -0700
commitd4f7519e64d2246be81b24b8e5fc72c8abccb759 (patch)
treefa2069220ddc7c461319846551fdc9deffe225bf /src
parent27af98deb91d1d64be44cdf12f01833b677fbf34 (diff)
downloadbinaryen-d4f7519e64d2246be81b24b8e5fc72c8abccb759.tar.gz
binaryen-d4f7519e64d2246be81b24b8e5fc72c8abccb759.tar.bz2
binaryen-d4f7519e64d2246be81b24b8e5fc72c8abccb759.zip
fix ExpressionAnalyzer::equals on consts, they need to be bitwise equal, i.e., 0 != -0
Diffstat (limited to 'src')
-rw-r--r--src/ast/ExpressionAnalyzer.cpp4
1 files changed, 3 insertions, 1 deletions
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<Const>()->value.bitwiseEqual(right->cast<Const>()->value)) {
+ return false;
+ }
break;
}
case Expression::Id::UnaryId: {