Document the panic function of library deployment

This commit is contained in:
Alex Beregszaszi
2021-05-26 15:51:46 +01:00
parent 29c8f282e4
commit bf2c82adca
4 changed files with 9 additions and 6 deletions
+6 -3
View File
@@ -237,15 +237,18 @@ size_t ContractCompiler::deployLibrary(ContractDefinition const& _contract)
codecopy(codepos, subOffset, subSize)
// Check that the first opcode is a PUSH20
if iszero(eq(0x73, byte(0, mload(codepos)))) {
mstore(0, <panicSig>)
mstore(4, 0)
mstore(0, <panicSelector>)
mstore(4, <panicCode>)
revert(0, 0x24)
}
mstore(0, address())
mstore8(codepos, 0x73)
return(codepos, subSize)
}
)")("panicSig", util::selectorFromSignature("Panic(uint256)").str()).render(),
)")
("panicSelector", util::selectorFromSignature("Panic(uint256)").str())
("panicCode", "0")
.render(),
{"subSize", "subOffset"}
);
-1
View File
@@ -656,7 +656,6 @@ pair<string, map<ContractDefinition const*, vector<string>>> IRGenerator::evalua
map<ContractDefinition const*, std::vector<ASTPointer<Expression>>const *, InheritanceOrder>
baseConstructorArguments(inheritanceOrder);
;
for (ASTPointer<InheritanceSpecifier> const& base: _contract.baseContracts())
if (FunctionDefinition const* baseConstructor = dynamic_cast<ContractDefinition const*>(