From 708129abd5f67838913dd42df590b3b64a825e3a Mon Sep 17 00:00:00 2001 From: chriseth Date: Fri, 20 May 2016 16:22:31 +0200 Subject: Fixes for invalid cleanups for small types. --- libsolidity/codegen/ExpressionCompiler.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libsolidity/codegen/ExpressionCompiler.cpp') diff --git a/libsolidity/codegen/ExpressionCompiler.cpp b/libsolidity/codegen/ExpressionCompiler.cpp index a01e306e..16677093 100644 --- a/libsolidity/codegen/ExpressionCompiler.cpp +++ b/libsolidity/codegen/ExpressionCompiler.cpp @@ -360,8 +360,11 @@ bool ExpressionCompiler::visit(BinaryOperation const& _binaryOperation) m_context << commonType.literalValue(nullptr); else { - bool cleanupNeeded = commonType.category() == Type::Category::Integer && - (Token::isCompareOp(c_op) || c_op == Token::Div || c_op == Token::Mod); + bool cleanupNeeded = false; + if (Token::isCompareOp(c_op)) + cleanupNeeded = true; + if (commonType.category() == Type::Category::Integer && (c_op == Token::Div || c_op == Token::Mod)) + cleanupNeeded = true; // for commutative operators, push the literal as late as possible to allow improved optimization auto isLiteral = [](Expression const& _e) -- cgit v1.2.3