From 47cd8964b8617e5c7e93232719224c8334a4c764 Mon Sep 17 00:00:00 2001 From: chriseth Date: Thu, 9 Mar 2017 17:03:53 +0100 Subject: Require and Assert. --- libsolidity/codegen/ExpressionCompiler.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'libsolidity/codegen') diff --git a/libsolidity/codegen/ExpressionCompiler.cpp b/libsolidity/codegen/ExpressionCompiler.cpp index 5192ffa6..744a80c4 100644 --- a/libsolidity/codegen/ExpressionCompiler.cpp +++ b/libsolidity/codegen/ExpressionCompiler.cpp @@ -879,14 +879,18 @@ bool ExpressionCompiler::visit(FunctionCall const& _functionCall) break; } case Location::Assert: + case Location::Require: { arguments.front()->accept(*this); utils().convertType(*arguments.front()->annotation().type, *function.parameterTypes().front(), false); // jump if condition was met m_context << Instruction::ISZERO << Instruction::ISZERO; auto success = m_context.appendConditionalJump(); - // condition was not met, flag an error - m_context << Instruction::INVALID; + if (function.location() == Location::Assert) + // condition was not met, flag an error + m_context << Instruction::INVALID; + else + m_context << u256(0) << u256(0) << Instruction::REVERT; // the success branch m_context << success; break; -- cgit