Merge pull request #11003 from ethereum/ir-bug-incorrect-return-variable-count

Fix IR bug on deleting storage variables of function type.
This commit is contained in:
chriseth
2021-02-24 13:24:31 +01:00
committed by GitHub
2 changed files with 42 additions and 1 deletions
+3 -1
View File
@@ -3888,11 +3888,13 @@ string YulUtilFunctions::storageSetToZeroFunction(Type const& _type)
if (_type.isValueType())
return Whiskers(R"(
function <functionName>(slot, offset) {
<store>(slot, offset, <zeroValue>())
let <values> := <zeroValue>()
<store>(slot, offset, <values>)
}
)")
("functionName", functionName)
("store", updateStorageValueFunction(_type, _type))
("values", suffixedVariableNameList("zero_", 0, _type.sizeOnStack()))
("zeroValue", zeroValueFunction(_type))
.render();
else if (_type.category() == Type::Category::Array)