mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Change opcode generated by (panic) to INVALID
EIP-141 ethereum/EIPs#141 has preserved 0xfe as an invalid opcode for aborting EVM execution. The EVM assembler supports this via the INVALID opcode. The LLL "panic" expression used to generate a jump to an invalid location in order to abort EVM execution. This change brings "panic" into line with EIP-141 by generating the INVALID opcode instead.
This commit is contained in:
parent
40f5690f68
commit
c603369a51
@ -573,10 +573,6 @@ void CodeFragment::constructOperation(sp::utree const& _t, CompilerState& _s)
|
||||
m_asm.append(i.m_asm);
|
||||
m_asm.popTo(1);
|
||||
}
|
||||
else if (us == "PANIC")
|
||||
{
|
||||
m_asm.appendJump(m_asm.errorTag());
|
||||
}
|
||||
else if (us == "BYTECODESIZE")
|
||||
{
|
||||
m_asm.appendProgramSize();
|
||||
|
@ -45,6 +45,7 @@ CodeFragment const& CompilerState::getDef(std::string const& _s)
|
||||
void CompilerState::populateStandard()
|
||||
{
|
||||
static const string s = "{"
|
||||
"(def 'panic () (asm INVALID))"
|
||||
"(def 'allgas (- (gas) 21))"
|
||||
"(def 'send (to value) (call allgas to value 0 0 0 0))"
|
||||
"(def 'send (gaslimit to value) (call gaslimit to value 0 0 0 0))"
|
||||
|
Loading…
Reference in New Issue
Block a user