diff options
Diffstat (limited to 'src/ir/ExpressionAnalyzer.cpp')
-rw-r--r-- | src/ir/ExpressionAnalyzer.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/ir/ExpressionAnalyzer.cpp b/src/ir/ExpressionAnalyzer.cpp index 5368c25f6..64b1ce24b 100644 --- a/src/ir/ExpressionAnalyzer.cpp +++ b/src/ir/ExpressionAnalyzer.cpp @@ -510,8 +510,14 @@ uint32_t ExpressionAnalyzer::hash(Expression* curr) { break; } case Expression::Id::ConstId: { - HASH(Const, value.type); - HASH64(Const, value.getBits()); + auto* c = curr->cast<Const>(); + hash(c->type); + auto bits = c->value.getBits(); + if (getTypeSize(c->type) == 4) { + hash(uint32_t(bits)); + } else { + hash64(bits); + } break; } case Expression::Id::UnaryId: { |