diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-09-27 13:08:24 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2017-09-27 13:08:24 -0700 |
commit | d4f7519e64d2246be81b24b8e5fc72c8abccb759 (patch) | |
tree | fa2069220ddc7c461319846551fdc9deffe225bf /src/ast/ExpressionAnalyzer.cpp | |
parent | 27af98deb91d1d64be44cdf12f01833b677fbf34 (diff) | |
download | binaryen-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/ast/ExpressionAnalyzer.cpp')
-rw-r--r-- | src/ast/ExpressionAnalyzer.cpp | 4 |
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: { |