From 894e42db340e2f29b60862fb1d5dea8f3b07167a Mon Sep 17 00:00:00 2001 From: Alexander Arlt Date: Wed, 21 Jun 2023 11:04:36 +0200 Subject: [PATCH] [libevmasm] Tests: Update tests to support sub-object index. --- test/cmdlineTests/asm_json/output | 3 +- .../output | 15 +- .../asm_json_export_yul_subobjects/output | 12 +- .../asm_json_export_yul_with_debug/output | 2 +- .../asm_json_export_yul_without_debug/output | 2 +- .../asm_json_import_all_valid_flags/output | 6 +- .../asm_json_import_all_valid_flags/stdin | 3 +- .../asm_json_import_yul_more_subobjects/stdin | 11 +- .../asm_json_import_yul_subobjects/stdin | 8 +- .../asm_json_no_pretty_print/output | 2 +- ...ignment_contract_member_variable_array.sol | 4 +- .../smtCheckerTests/operators/mod_signed.sol | 2 +- test/libyul/objectCompiler/manySubObjects.yul | 435 ++++++++++++++++++ 13 files changed, 482 insertions(+), 23 deletions(-) create mode 100644 test/libyul/objectCompiler/manySubObjects.yul diff --git a/test/cmdlineTests/asm_json/output b/test/cmdlineTests/asm_json/output index f6a0a4b19..27673625d 100644 --- a/test/cmdlineTests/asm_json/output +++ b/test/cmdlineTests/asm_json/output @@ -1567,7 +1567,8 @@ EVM assembly: "name": "JUMP", "source": 1 } - ] + ], + "index": 0 } }, "sourceList": diff --git a/test/cmdlineTests/asm_json_export_yul_more_subobjects/output b/test/cmdlineTests/asm_json_export_yul_more_subobjects/output index 31e381275..f5858f909 100644 --- a/test/cmdlineTests/asm_json_export_yul_more_subobjects/output +++ b/test/cmdlineTests/asm_json_export_yul_more_subobjects/output @@ -327,7 +327,8 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 0 }, "1": { @@ -339,7 +340,8 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 1 }, "2": { @@ -351,11 +353,14 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 2 } - } + }, + "index": 0 } - } + }, + "index": 0 } }, "sourceList": diff --git a/test/cmdlineTests/asm_json_export_yul_subobjects/output b/test/cmdlineTests/asm_json_export_yul_subobjects/output index 463e925ba..c7f82bf55 100644 --- a/test/cmdlineTests/asm_json_export_yul_subobjects/output +++ b/test/cmdlineTests/asm_json_export_yul_subobjects/output @@ -388,9 +388,11 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 0 } - } + }, + "index": 0 }, "1": { @@ -402,9 +404,11 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 1 } - } + }, + "index": 0 }, "ACAF3289D7B601CBD114FB36C4D29C85BBFD5E133F14CB355C3FD8D99367964F": "48656c6c6f2c20576f726c6421" }, diff --git a/test/cmdlineTests/asm_json_export_yul_with_debug/output b/test/cmdlineTests/asm_json_export_yul_with_debug/output index 0cbab5cb2..6d8bc178c 100644 --- a/test/cmdlineTests/asm_json_export_yul_with_debug/output +++ b/test/cmdlineTests/asm_json_export_yul_with_debug/output @@ -1,3 +1,3 @@ ======= (EVM) ======= -{".code":[{"begin":0,"end":125,"name":"PUSH","source":0,"value":"80"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"40"},{"begin":0,"end":125,"name":"MSTORE","source":0},{"begin":0,"end":125,"name":"CALLVALUE","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"0"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"1"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":56,"end":57,"name":"PUSH","source":0,"value":"2"},{"begin":33,"end":34,"name":"PUSH","source":0,"value":"0"},{"begin":0,"end":125,"name":"SSTORE","source":0},{"begin":33,"end":34,"name":"PUSH","source":0,"value":"0"},{"begin":33,"end":34,"name":"PUSH","source":0,"value":"1"},{"begin":0,"end":125,"name":"SSTORE","source":0},{"begin":0,"end":125,"name":"PUSH #[$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"PUSH [$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":0,"end":125,"name":"DUP4","source":0},{"begin":0,"end":125,"name":"CODECOPY","source":0},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"RETURN","source":0}],".data":{"0":{".auxdata":"",".code":[{"begin":0,"end":125,"name":"PUSH","source":0,"value":"80"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"40"},{"begin":0,"end":125,"name":"MSTORE","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"4"},{"begin":0,"end":125,"name":"CALLDATASIZE","source":0},{"begin":0,"end":125,"name":"LT","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"0"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"CALLDATALOAD","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"E0"},{"begin":0,"end":125,"name":"SHR","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"B4F40C61"},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"EQ","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"3"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"E5AA3D58"},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"EQ","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"4"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"2"},{"begin":0,"end":125,"name":"JUMP","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"3"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"CALLVALUE","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"5"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"5"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"3"},{"begin":0,"end":125,"name":"NOT","source":0},{"begin":0,"end":125,"name":"CALLDATASIZE","source":0},{"begin":0,"end":125,"name":"ADD","source":0},{"begin":0,"end":125,"name":"SLT","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"6"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"6"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":40,"end":57,"name":"PUSH","source":0,"value":"1"},{"begin":0,"end":125,"name":"SLOAD","source":0},{"begin":0,"end":125,"name":"DUP4","source":0},{"begin":0,"end":125,"name":"MSTORE","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"20"},{"begin":0,"end":125,"name":"DUP4","source":0},{"begin":0,"end":125,"name":"RETURN","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"4"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"CALLVALUE","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"7"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"7"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"3"},{"begin":0,"end":125,"name":"NOT","source":0},{"begin":0,"end":125,"name":"CALLDATASIZE","source":0},{"begin":0,"end":125,"name":"ADD","source":0},{"begin":0,"end":125,"name":"SLT","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"8"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"8"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"SLOAD","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"40"},{"begin":0,"end":125,"name":"MLOAD","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"MSTORE","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"20"},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"RETURN","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"2"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"POP","source":0},{"begin":0,"end":125,"name":"POP","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"1"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"0"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"REVERT","source":0}]}},"sourceList":["state_var_initialization.sol"]} +{".code":[{"begin":0,"end":125,"name":"PUSH","source":0,"value":"80"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"40"},{"begin":0,"end":125,"name":"MSTORE","source":0},{"begin":0,"end":125,"name":"CALLVALUE","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"0"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"1"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":56,"end":57,"name":"PUSH","source":0,"value":"2"},{"begin":33,"end":34,"name":"PUSH","source":0,"value":"0"},{"begin":0,"end":125,"name":"SSTORE","source":0},{"begin":33,"end":34,"name":"PUSH","source":0,"value":"0"},{"begin":33,"end":34,"name":"PUSH","source":0,"value":"1"},{"begin":0,"end":125,"name":"SSTORE","source":0},{"begin":0,"end":125,"name":"PUSH #[$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"PUSH [$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":0,"end":125,"name":"DUP4","source":0},{"begin":0,"end":125,"name":"CODECOPY","source":0},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"RETURN","source":0}],".data":{"0":{".auxdata":"",".code":[{"begin":0,"end":125,"name":"PUSH","source":0,"value":"80"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"40"},{"begin":0,"end":125,"name":"MSTORE","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"4"},{"begin":0,"end":125,"name":"CALLDATASIZE","source":0},{"begin":0,"end":125,"name":"LT","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"0"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"CALLDATALOAD","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"E0"},{"begin":0,"end":125,"name":"SHR","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"B4F40C61"},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"EQ","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"3"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"E5AA3D58"},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"EQ","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"4"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"2"},{"begin":0,"end":125,"name":"JUMP","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"3"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"CALLVALUE","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"5"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"5"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"3"},{"begin":0,"end":125,"name":"NOT","source":0},{"begin":0,"end":125,"name":"CALLDATASIZE","source":0},{"begin":0,"end":125,"name":"ADD","source":0},{"begin":0,"end":125,"name":"SLT","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"6"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"6"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":40,"end":57,"name":"PUSH","source":0,"value":"1"},{"begin":0,"end":125,"name":"SLOAD","source":0},{"begin":0,"end":125,"name":"DUP4","source":0},{"begin":0,"end":125,"name":"MSTORE","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"20"},{"begin":0,"end":125,"name":"DUP4","source":0},{"begin":0,"end":125,"name":"RETURN","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"4"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"CALLVALUE","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"7"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"7"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"3"},{"begin":0,"end":125,"name":"NOT","source":0},{"begin":0,"end":125,"name":"CALLDATASIZE","source":0},{"begin":0,"end":125,"name":"ADD","source":0},{"begin":0,"end":125,"name":"SLT","source":0},{"begin":0,"end":125,"name":"ISZERO","source":0},{"begin":0,"end":125,"name":"PUSH [tag]","source":0,"value":"8"},{"begin":0,"end":125,"name":"JUMPI","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP3","source":0},{"begin":0,"end":125,"name":"REVERT","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"8"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"SLOAD","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"40"},{"begin":0,"end":125,"name":"MLOAD","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"MSTORE","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"20"},{"begin":0,"end":125,"name":"DUP2","source":0},{"begin":0,"end":125,"name":"RETURN","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"2"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"POP","source":0},{"begin":0,"end":125,"name":"POP","source":0},{"begin":0,"end":125,"name":"tag","source":0,"value":"1"},{"begin":0,"end":125,"name":"JUMPDEST","source":0},{"begin":0,"end":125,"name":"PUSH","source":0,"value":"0"},{"begin":0,"end":125,"name":"DUP1","source":0},{"begin":0,"end":125,"name":"REVERT","source":0}],"index":0}},"sourceList":["state_var_initialization.sol"]} diff --git a/test/cmdlineTests/asm_json_export_yul_without_debug/output b/test/cmdlineTests/asm_json_export_yul_without_debug/output index 607e92267..ee2a4e9a0 100644 --- a/test/cmdlineTests/asm_json_export_yul_without_debug/output +++ b/test/cmdlineTests/asm_json_export_yul_without_debug/output @@ -1,3 +1,3 @@ ======= (EVM) ======= -{".code":[{"begin":59,"end":76,"name":"PUSH","source":0,"value":"80"},{"begin":100,"end":102,"name":"DUP1","source":0},{"begin":96,"end":98,"name":"PUSH","source":0,"value":"40"},{"begin":89,"end":103,"name":"MSTORE","source":0},{"begin":119,"end":130,"name":"CALLVALUE","source":0},{"begin":116,"end":147,"name":"ISZERO","source":0},{"begin":116,"end":147,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":116,"end":147,"name":"JUMPI","source":0},{"begin":143,"end":144,"name":"PUSH","source":0,"value":"0"},{"begin":140,"end":141,"name":"DUP1","source":0},{"begin":133,"end":145,"name":"REVERT","source":0},{"begin":116,"end":147,"name":"tag","source":0,"value":"1"},{"begin":116,"end":147,"name":"JUMPDEST","source":0},{"begin":173,"end":177,"name":"PUSH","source":0,"value":"2"},{"begin":167,"end":171,"name":"PUSH","source":0,"value":"0"},{"begin":160,"end":178,"name":"SSTORE","source":0},{"begin":204,"end":208,"name":"PUSH","source":0,"value":"0"},{"begin":198,"end":202,"name":"PUSH","source":0,"value":"1"},{"begin":191,"end":209,"name":"SSTORE","source":0},{"begin":232,"end":257,"name":"PUSH #[$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":312,"end":314,"name":"DUP1","source":0},{"begin":283,"end":310,"name":"PUSH [$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":279,"end":281,"name":"DUP4","source":0},{"begin":270,"end":315,"name":"CODECOPY","source":0},{"begin":339,"end":341,"name":"DUP1","source":0},{"begin":335,"end":337,"name":"DUP3","source":0},{"begin":328,"end":342,"name":"RETURN","source":0}],".data":{"0":{".auxdata":"",".code":[{"begin":443,"end":460,"name":"PUSH","source":0,"value":"80"},{"begin":488,"end":490,"name":"DUP1","source":0},{"begin":484,"end":486,"name":"PUSH","source":0,"value":"40"},{"begin":477,"end":491,"name":"MSTORE","source":0},{"begin":537,"end":538,"name":"PUSH","source":0,"value":"4"},{"begin":521,"end":535,"name":"CALLDATASIZE","source":0},{"begin":518,"end":539,"name":"LT","source":0},{"begin":508,"end":1367,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":508,"end":1367,"name":"JUMPI","source":0},{"begin":589,"end":590,"name":"PUSH","source":0,"value":"0"},{"begin":640,"end":642,"name":"DUP1","source":0},{"begin":627,"end":643,"name":"CALLDATALOAD","source":0},{"begin":622,"end":625,"name":"PUSH","source":0,"value":"E0"},{"begin":618,"end":644,"name":"SHR","source":0},{"begin":670,"end":680,"name":"PUSH","source":0,"value":"B4F40C61"},{"begin":665,"end":970,"name":"DUP2","source":0},{"begin":665,"end":970,"name":"EQ","source":0},{"begin":665,"end":970,"name":"PUSH [tag]","source":0,"value":"3"},{"begin":665,"end":970,"name":"JUMPI","source":0},{"begin":996,"end":1006,"name":"PUSH","source":0,"value":"E5AA3D58"},{"begin":991,"end":1349,"name":"DUP2","source":0},{"begin":991,"end":1349,"name":"EQ","source":0},{"begin":991,"end":1349,"name":"PUSH [tag]","source":0,"value":"4"},{"begin":991,"end":1349,"name":"JUMPI","source":0},{"begin":611,"end":1349,"name":"PUSH [tag]","source":0,"value":"2"},{"begin":611,"end":1349,"name":"JUMP","source":0},{"begin":665,"end":970,"name":"tag","source":0,"value":"3"},{"begin":665,"end":970,"name":"JUMPDEST","source":0},{"begin":710,"end":721,"name":"CALLVALUE","source":0},{"begin":707,"end":740,"name":"ISZERO","source":0},{"begin":707,"end":740,"name":"PUSH [tag]","source":0,"value":"5"},{"begin":707,"end":740,"name":"JUMPI","source":0},{"begin":735,"end":737,"name":"DUP2","source":0},{"begin":731,"end":733,"name":"DUP3","source":0},{"begin":724,"end":738,"name":"REVERT","source":0},{"begin":707,"end":740,"name":"tag","source":0,"value":"5"},{"begin":707,"end":740,"name":"JUMPDEST","source":0},{"begin":801,"end":803,"name":"DUP2","source":0},{"begin":796,"end":797,"name":"PUSH","source":0,"value":"3"},{"begin":792,"end":798,"name":"NOT","source":0},{"begin":776,"end":790,"name":"CALLDATASIZE","source":0},{"begin":772,"end":799,"name":"ADD","source":0},{"begin":768,"end":804,"name":"SLT","source":0},{"begin":765,"end":823,"name":"ISZERO","source":0},{"begin":765,"end":823,"name":"PUSH [tag]","source":0,"value":"6"},{"begin":765,"end":823,"name":"JUMPI","source":0},{"begin":818,"end":820,"name":"DUP2","source":0},{"begin":814,"end":816,"name":"DUP3","source":0},{"begin":807,"end":821,"name":"REVERT","source":0},{"begin":765,"end":823,"name":"tag","source":0,"value":"6"},{"begin":765,"end":823,"name":"JUMPDEST","source":0},{"begin":906,"end":907,"name":"PUSH","source":0,"value":"1"},{"begin":859,"end":908,"name":"SLOAD","source":0},{"begin":855,"end":857,"name":"DUP4","source":0},{"begin":848,"end":909,"name":"MSTORE","source":0},{"begin":945,"end":947,"name":"PUSH","source":0,"value":"20"},{"begin":941,"end":943,"name":"DUP4","source":0},{"begin":934,"end":948,"name":"RETURN","source":0},{"begin":991,"end":1349,"name":"tag","source":0,"value":"4"},{"begin":991,"end":1349,"name":"JUMPDEST","source":0},{"begin":1036,"end":1047,"name":"CALLVALUE","source":0},{"begin":1033,"end":1066,"name":"ISZERO","source":0},{"begin":1033,"end":1066,"name":"PUSH [tag]","source":0,"value":"7"},{"begin":1033,"end":1066,"name":"JUMPI","source":0},{"begin":1061,"end":1063,"name":"DUP2","source":0},{"begin":1057,"end":1059,"name":"DUP3","source":0},{"begin":1050,"end":1064,"name":"REVERT","source":0},{"begin":1033,"end":1066,"name":"tag","source":0,"value":"7"},{"begin":1033,"end":1066,"name":"JUMPDEST","source":0},{"begin":1127,"end":1129,"name":"DUP2","source":0},{"begin":1122,"end":1123,"name":"PUSH","source":0,"value":"3"},{"begin":1118,"end":1124,"name":"NOT","source":0},{"begin":1102,"end":1116,"name":"CALLDATASIZE","source":0},{"begin":1098,"end":1125,"name":"ADD","source":0},{"begin":1094,"end":1130,"name":"SLT","source":0},{"begin":1091,"end":1149,"name":"ISZERO","source":0},{"begin":1091,"end":1149,"name":"PUSH [tag]","source":0,"value":"8"},{"begin":1091,"end":1149,"name":"JUMPI","source":0},{"begin":1144,"end":1146,"name":"DUP2","source":0},{"begin":1140,"end":1142,"name":"DUP3","source":0},{"begin":1133,"end":1147,"name":"REVERT","source":0},{"begin":1091,"end":1149,"name":"tag","source":0,"value":"8"},{"begin":1091,"end":1149,"name":"JUMPDEST","source":0},{"begin":1190,"end":1192,"name":"DUP2","source":0},{"begin":1184,"end":1193,"name":"SLOAD","source":0},{"begin":1238,"end":1240,"name":"PUSH","source":0,"value":"40"},{"begin":1232,"end":1241,"name":"MLOAD","source":0},{"begin":1281,"end":1283,"name":"DUP2","source":0},{"begin":1273,"end":1279,"name":"DUP2","source":0},{"begin":1266,"end":1284,"name":"MSTORE","source":0},{"begin":1324,"end":1326,"name":"PUSH","source":0,"value":"20"},{"begin":1316,"end":1322,"name":"DUP2","source":0},{"begin":1309,"end":1327,"name":"RETURN","source":0},{"begin":611,"end":1349,"name":"tag","source":0,"value":"2"},{"begin":611,"end":1349,"name":"JUMPDEST","source":0},{"begin":611,"end":1349,"name":"POP","source":0},{"begin":557,"end":1367,"name":"POP","source":0},{"begin":508,"end":1367,"name":"tag","source":0,"value":"1"},{"begin":508,"end":1367,"name":"JUMPDEST","source":0},{"begin":1394,"end":1395,"name":"PUSH","source":0,"value":"0"},{"begin":1391,"end":1392,"name":"DUP1","source":0},{"begin":1384,"end":1396,"name":"REVERT","source":0}]}},"sourceList":[""]} +{".code":[{"begin":59,"end":76,"name":"PUSH","source":0,"value":"80"},{"begin":100,"end":102,"name":"DUP1","source":0},{"begin":96,"end":98,"name":"PUSH","source":0,"value":"40"},{"begin":89,"end":103,"name":"MSTORE","source":0},{"begin":119,"end":130,"name":"CALLVALUE","source":0},{"begin":116,"end":147,"name":"ISZERO","source":0},{"begin":116,"end":147,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":116,"end":147,"name":"JUMPI","source":0},{"begin":143,"end":144,"name":"PUSH","source":0,"value":"0"},{"begin":140,"end":141,"name":"DUP1","source":0},{"begin":133,"end":145,"name":"REVERT","source":0},{"begin":116,"end":147,"name":"tag","source":0,"value":"1"},{"begin":116,"end":147,"name":"JUMPDEST","source":0},{"begin":173,"end":177,"name":"PUSH","source":0,"value":"2"},{"begin":167,"end":171,"name":"PUSH","source":0,"value":"0"},{"begin":160,"end":178,"name":"SSTORE","source":0},{"begin":204,"end":208,"name":"PUSH","source":0,"value":"0"},{"begin":198,"end":202,"name":"PUSH","source":0,"value":"1"},{"begin":191,"end":209,"name":"SSTORE","source":0},{"begin":232,"end":257,"name":"PUSH #[$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":312,"end":314,"name":"DUP1","source":0},{"begin":283,"end":310,"name":"PUSH [$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":279,"end":281,"name":"DUP4","source":0},{"begin":270,"end":315,"name":"CODECOPY","source":0},{"begin":339,"end":341,"name":"DUP1","source":0},{"begin":335,"end":337,"name":"DUP3","source":0},{"begin":328,"end":342,"name":"RETURN","source":0}],".data":{"0":{".auxdata":"",".code":[{"begin":443,"end":460,"name":"PUSH","source":0,"value":"80"},{"begin":488,"end":490,"name":"DUP1","source":0},{"begin":484,"end":486,"name":"PUSH","source":0,"value":"40"},{"begin":477,"end":491,"name":"MSTORE","source":0},{"begin":537,"end":538,"name":"PUSH","source":0,"value":"4"},{"begin":521,"end":535,"name":"CALLDATASIZE","source":0},{"begin":518,"end":539,"name":"LT","source":0},{"begin":508,"end":1367,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":508,"end":1367,"name":"JUMPI","source":0},{"begin":589,"end":590,"name":"PUSH","source":0,"value":"0"},{"begin":640,"end":642,"name":"DUP1","source":0},{"begin":627,"end":643,"name":"CALLDATALOAD","source":0},{"begin":622,"end":625,"name":"PUSH","source":0,"value":"E0"},{"begin":618,"end":644,"name":"SHR","source":0},{"begin":670,"end":680,"name":"PUSH","source":0,"value":"B4F40C61"},{"begin":665,"end":970,"name":"DUP2","source":0},{"begin":665,"end":970,"name":"EQ","source":0},{"begin":665,"end":970,"name":"PUSH [tag]","source":0,"value":"3"},{"begin":665,"end":970,"name":"JUMPI","source":0},{"begin":996,"end":1006,"name":"PUSH","source":0,"value":"E5AA3D58"},{"begin":991,"end":1349,"name":"DUP2","source":0},{"begin":991,"end":1349,"name":"EQ","source":0},{"begin":991,"end":1349,"name":"PUSH [tag]","source":0,"value":"4"},{"begin":991,"end":1349,"name":"JUMPI","source":0},{"begin":611,"end":1349,"name":"PUSH [tag]","source":0,"value":"2"},{"begin":611,"end":1349,"name":"JUMP","source":0},{"begin":665,"end":970,"name":"tag","source":0,"value":"3"},{"begin":665,"end":970,"name":"JUMPDEST","source":0},{"begin":710,"end":721,"name":"CALLVALUE","source":0},{"begin":707,"end":740,"name":"ISZERO","source":0},{"begin":707,"end":740,"name":"PUSH [tag]","source":0,"value":"5"},{"begin":707,"end":740,"name":"JUMPI","source":0},{"begin":735,"end":737,"name":"DUP2","source":0},{"begin":731,"end":733,"name":"DUP3","source":0},{"begin":724,"end":738,"name":"REVERT","source":0},{"begin":707,"end":740,"name":"tag","source":0,"value":"5"},{"begin":707,"end":740,"name":"JUMPDEST","source":0},{"begin":801,"end":803,"name":"DUP2","source":0},{"begin":796,"end":797,"name":"PUSH","source":0,"value":"3"},{"begin":792,"end":798,"name":"NOT","source":0},{"begin":776,"end":790,"name":"CALLDATASIZE","source":0},{"begin":772,"end":799,"name":"ADD","source":0},{"begin":768,"end":804,"name":"SLT","source":0},{"begin":765,"end":823,"name":"ISZERO","source":0},{"begin":765,"end":823,"name":"PUSH [tag]","source":0,"value":"6"},{"begin":765,"end":823,"name":"JUMPI","source":0},{"begin":818,"end":820,"name":"DUP2","source":0},{"begin":814,"end":816,"name":"DUP3","source":0},{"begin":807,"end":821,"name":"REVERT","source":0},{"begin":765,"end":823,"name":"tag","source":0,"value":"6"},{"begin":765,"end":823,"name":"JUMPDEST","source":0},{"begin":906,"end":907,"name":"PUSH","source":0,"value":"1"},{"begin":859,"end":908,"name":"SLOAD","source":0},{"begin":855,"end":857,"name":"DUP4","source":0},{"begin":848,"end":909,"name":"MSTORE","source":0},{"begin":945,"end":947,"name":"PUSH","source":0,"value":"20"},{"begin":941,"end":943,"name":"DUP4","source":0},{"begin":934,"end":948,"name":"RETURN","source":0},{"begin":991,"end":1349,"name":"tag","source":0,"value":"4"},{"begin":991,"end":1349,"name":"JUMPDEST","source":0},{"begin":1036,"end":1047,"name":"CALLVALUE","source":0},{"begin":1033,"end":1066,"name":"ISZERO","source":0},{"begin":1033,"end":1066,"name":"PUSH [tag]","source":0,"value":"7"},{"begin":1033,"end":1066,"name":"JUMPI","source":0},{"begin":1061,"end":1063,"name":"DUP2","source":0},{"begin":1057,"end":1059,"name":"DUP3","source":0},{"begin":1050,"end":1064,"name":"REVERT","source":0},{"begin":1033,"end":1066,"name":"tag","source":0,"value":"7"},{"begin":1033,"end":1066,"name":"JUMPDEST","source":0},{"begin":1127,"end":1129,"name":"DUP2","source":0},{"begin":1122,"end":1123,"name":"PUSH","source":0,"value":"3"},{"begin":1118,"end":1124,"name":"NOT","source":0},{"begin":1102,"end":1116,"name":"CALLDATASIZE","source":0},{"begin":1098,"end":1125,"name":"ADD","source":0},{"begin":1094,"end":1130,"name":"SLT","source":0},{"begin":1091,"end":1149,"name":"ISZERO","source":0},{"begin":1091,"end":1149,"name":"PUSH [tag]","source":0,"value":"8"},{"begin":1091,"end":1149,"name":"JUMPI","source":0},{"begin":1144,"end":1146,"name":"DUP2","source":0},{"begin":1140,"end":1142,"name":"DUP3","source":0},{"begin":1133,"end":1147,"name":"REVERT","source":0},{"begin":1091,"end":1149,"name":"tag","source":0,"value":"8"},{"begin":1091,"end":1149,"name":"JUMPDEST","source":0},{"begin":1190,"end":1192,"name":"DUP2","source":0},{"begin":1184,"end":1193,"name":"SLOAD","source":0},{"begin":1238,"end":1240,"name":"PUSH","source":0,"value":"40"},{"begin":1232,"end":1241,"name":"MLOAD","source":0},{"begin":1281,"end":1283,"name":"DUP2","source":0},{"begin":1273,"end":1279,"name":"DUP2","source":0},{"begin":1266,"end":1284,"name":"MSTORE","source":0},{"begin":1324,"end":1326,"name":"PUSH","source":0,"value":"20"},{"begin":1316,"end":1322,"name":"DUP2","source":0},{"begin":1309,"end":1327,"name":"RETURN","source":0},{"begin":611,"end":1349,"name":"tag","source":0,"value":"2"},{"begin":611,"end":1349,"name":"JUMPDEST","source":0},{"begin":611,"end":1349,"name":"POP","source":0},{"begin":557,"end":1367,"name":"POP","source":0},{"begin":508,"end":1367,"name":"tag","source":0,"value":"1"},{"begin":508,"end":1367,"name":"JUMPDEST","source":0},{"begin":1394,"end":1395,"name":"PUSH","source":0,"value":"0"},{"begin":1391,"end":1392,"name":"DUP1","source":0},{"begin":1384,"end":1396,"name":"REVERT","source":0}],"index":0}},"sourceList":[""]} diff --git a/test/cmdlineTests/asm_json_import_all_valid_flags/output b/test/cmdlineTests/asm_json_import_all_valid_flags/output index 7b8aa0297..a880afa5b 100644 --- a/test/cmdlineTests/asm_json_import_all_valid_flags/output +++ b/test/cmdlineTests/asm_json_import_all_valid_flags/output @@ -28,7 +28,8 @@ "source": -1, "value": "1" } - ] + ], + "index": 0 } }, "sourceList": @@ -80,7 +81,8 @@ EVM assembly: "source": -1, "value": "1" } - ] + ], + "index": 0 } }, "sourceList": diff --git a/test/cmdlineTests/asm_json_import_all_valid_flags/stdin b/test/cmdlineTests/asm_json_import_all_valid_flags/stdin index bda42c5a3..dbaac88fa 100644 --- a/test/cmdlineTests/asm_json_import_all_valid_flags/stdin +++ b/test/cmdlineTests/asm_json_import_all_valid_flags/stdin @@ -12,7 +12,8 @@ "name": "PUSH", "value": "1" } - ] + ], + "index": 0 } }, "sourceList": [ diff --git a/test/cmdlineTests/asm_json_import_yul_more_subobjects/stdin b/test/cmdlineTests/asm_json_import_yul_more_subobjects/stdin index 7b5b92bce..9d2f37aa6 100644 --- a/test/cmdlineTests/asm_json_import_yul_more_subobjects/stdin +++ b/test/cmdlineTests/asm_json_import_yul_more_subobjects/stdin @@ -227,6 +227,7 @@ "source": 0 } ], + "index": 0, ".data": { "0": @@ -313,6 +314,7 @@ "source": 0 } ], + "index": 0, ".data": { "0": @@ -325,7 +327,8 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 0 }, "1": { @@ -337,7 +340,8 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 1 }, "2": { @@ -349,7 +353,8 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 2 } } } diff --git a/test/cmdlineTests/asm_json_import_yul_subobjects/stdin b/test/cmdlineTests/asm_json_import_yul_subobjects/stdin index e504b4679..a50e4a4e5 100644 --- a/test/cmdlineTests/asm_json_import_yul_subobjects/stdin +++ b/test/cmdlineTests/asm_json_import_yul_subobjects/stdin @@ -327,6 +327,7 @@ "source": 0 } ], + "index": 0, ".data": { "0": @@ -374,6 +375,7 @@ "source": 0 } ], + "index": 0, ".data": { "0": @@ -386,7 +388,8 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 0 } } }, @@ -400,7 +403,8 @@ "name": "INVALID", "source": 0 } - ] + ], + "index": 1 } } }, diff --git a/test/cmdlineTests/asm_json_no_pretty_print/output b/test/cmdlineTests/asm_json_no_pretty_print/output index b713097bb..893b6a222 100644 --- a/test/cmdlineTests/asm_json_no_pretty_print/output +++ b/test/cmdlineTests/asm_json_no_pretty_print/output @@ -1,4 +1,4 @@ ======= asm_json_no_pretty_print/input.sol:C ======= EVM assembly: -{".code":[{"begin":60,"end":160,"name":"PUSH","source":0,"value":"80"},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"40"},{"begin":60,"end":160,"name":"MSTORE","source":0},{"begin":60,"end":160,"name":"CALLVALUE","source":0},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"ISZERO","source":0},{"begin":60,"end":160,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":60,"end":160,"name":"JUMPI","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"REVERT","source":0},{"begin":60,"end":160,"name":"tag","source":0,"value":"1"},{"begin":60,"end":160,"name":"JUMPDEST","source":0},{"begin":60,"end":160,"name":"POP","source":0},{"begin":60,"end":160,"name":"PUSH #[$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"PUSH [$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"CODECOPY","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"RETURN","source":0}],".data":{"0":{".auxdata":"",".code":[{"begin":60,"end":160,"name":"PUSH","source":0,"value":"80"},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"40"},{"begin":60,"end":160,"name":"MSTORE","source":0},{"begin":60,"end":160,"name":"CALLVALUE","source":0},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"ISZERO","source":0},{"begin":60,"end":160,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":60,"end":160,"name":"JUMPI","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"REVERT","source":0},{"begin":60,"end":160,"name":"tag","source":0,"value":"1"},{"begin":60,"end":160,"name":"JUMPDEST","source":0},{"begin":60,"end":160,"name":"POP","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"4"},{"begin":60,"end":160,"name":"CALLDATASIZE","source":0},{"begin":60,"end":160,"name":"LT","source":0},{"begin":60,"end":160,"name":"PUSH [tag]","source":0,"value":"2"},{"begin":60,"end":160,"name":"JUMPI","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"CALLDATALOAD","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"E0"},{"begin":60,"end":160,"name":"SHR","source":0},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"B3DE648B"},{"begin":60,"end":160,"name":"EQ","source":0},{"begin":60,"end":160,"name":"PUSH [tag]","source":0,"value":"3"},{"begin":60,"end":160,"name":"JUMPI","source":0},{"begin":60,"end":160,"name":"tag","source":0,"value":"2"},{"begin":60,"end":160,"name":"JUMPDEST","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"REVERT","source":0},{"begin":77,"end":158,"name":"tag","source":0,"value":"3"},{"begin":77,"end":158,"name":"JUMPDEST","source":0},{"begin":77,"end":158,"name":"PUSH [tag]","source":0,"value":"4"},{"begin":77,"end":158,"name":"PUSH","source":0,"value":"4"},{"begin":77,"end":158,"name":"DUP1","source":0},{"begin":77,"end":158,"name":"CALLDATASIZE","source":0},{"begin":77,"end":158,"name":"SUB","source":0},{"begin":77,"end":158,"name":"DUP2","source":0},{"begin":77,"end":158,"name":"ADD","source":0},{"begin":77,"end":158,"name":"SWAP1","source":0},{"begin":77,"end":158,"name":"PUSH [tag]","source":0,"value":"5"},{"begin":77,"end":158,"name":"SWAP2","source":0},{"begin":77,"end":158,"name":"SWAP1","source":0},{"begin":77,"end":158,"name":"PUSH [tag]","source":0,"value":"6"},{"begin":77,"end":158,"jumpType":"[in]","name":"JUMP","source":0},{"begin":77,"end":158,"name":"tag","source":0,"value":"5"},{"begin":77,"end":158,"name":"JUMPDEST","source":0},{"begin":77,"end":158,"name":"PUSH [tag]","source":0,"value":"7"},{"begin":77,"end":158,"jumpType":"[in]","name":"JUMP","source":0},{"begin":77,"end":158,"name":"tag","source":0,"value":"4"},{"begin":77,"end":158,"name":"JUMPDEST","source":0},{"begin":77,"end":158,"name":"STOP","source":0},{"begin":77,"end":158,"name":"tag","source":0,"value":"7"},{"begin":77,"end":158,"name":"JUMPDEST","source":0},{"begin":123,"end":125,"name":"PUSH","source":0,"value":"2A"},{"begin":118,"end":125,"name":"DUP2","source":0},{"begin":118,"end":125,"name":"PUSH [tag]","source":0,"value":"9"},{"begin":118,"end":125,"name":"SWAP2","source":0},{"begin":118,"end":125,"name":"SWAP1","source":0},{"begin":118,"end":125,"name":"PUSH [tag]","source":0,"value":"10"},{"begin":118,"end":125,"jumpType":"[in]","name":"JUMP","source":0},{"begin":118,"end":125,"name":"tag","source":0,"value":"9"},{"begin":118,"end":125,"name":"JUMPDEST","source":0},{"begin":118,"end":125,"name":"SWAP1","source":0},{"begin":118,"end":125,"name":"POP","source":0},{"begin":147,"end":150,"name":"PUSH","source":0,"value":"64"},{"begin":143,"end":144,"name":"DUP2","source":0},{"begin":143,"end":150,"name":"GT","source":0},{"begin":135,"end":151,"name":"PUSH [tag]","source":0,"value":"11"},{"begin":135,"end":151,"name":"JUMPI","source":0},{"begin":135,"end":151,"name":"PUSH","source":0,"value":"0"},{"begin":135,"end":151,"name":"DUP1","source":0},{"begin":135,"end":151,"name":"REVERT","source":0},{"begin":135,"end":151,"name":"tag","source":0,"value":"11"},{"begin":135,"end":151,"name":"JUMPDEST","source":0},{"begin":77,"end":158,"name":"POP","source":0},{"begin":77,"end":158,"jumpType":"[out]","name":"JUMP","source":0},{"begin":88,"end":205,"name":"tag","source":1,"value":"13"},{"begin":88,"end":205,"name":"JUMPDEST","source":1},{"begin":197,"end":198,"name":"PUSH","source":1,"value":"0"},{"begin":194,"end":195,"name":"DUP1","source":1},{"begin":187,"end":199,"name":"REVERT","source":1},{"begin":334,"end":411,"name":"tag","source":1,"value":"15"},{"begin":334,"end":411,"name":"JUMPDEST","source":1},{"begin":371,"end":378,"name":"PUSH","source":1,"value":"0"},{"begin":400,"end":405,"name":"DUP2","source":1},{"begin":389,"end":405,"name":"SWAP1","source":1},{"begin":389,"end":405,"name":"POP","source":1},{"begin":334,"end":411,"name":"SWAP2","source":1},{"begin":334,"end":411,"name":"SWAP1","source":1},{"begin":334,"end":411,"name":"POP","source":1},{"begin":334,"end":411,"jumpType":"[out]","name":"JUMP","source":1},{"begin":417,"end":539,"name":"tag","source":1,"value":"16"},{"begin":417,"end":539,"name":"JUMPDEST","source":1},{"begin":490,"end":514,"name":"PUSH [tag]","source":1,"value":"25"},{"begin":508,"end":513,"name":"DUP2","source":1},{"begin":490,"end":514,"name":"PUSH [tag]","source":1,"value":"15"},{"begin":490,"end":514,"jumpType":"[in]","name":"JUMP","source":1},{"begin":490,"end":514,"name":"tag","source":1,"value":"25"},{"begin":490,"end":514,"name":"JUMPDEST","source":1},{"begin":483,"end":488,"name":"DUP2","source":1},{"begin":480,"end":515,"name":"EQ","source":1},{"begin":470,"end":533,"name":"PUSH [tag]","source":1,"value":"26"},{"begin":470,"end":533,"name":"JUMPI","source":1},{"begin":529,"end":530,"name":"PUSH","source":1,"value":"0"},{"begin":526,"end":527,"name":"DUP1","source":1},{"begin":519,"end":531,"name":"REVERT","source":1},{"begin":470,"end":533,"name":"tag","source":1,"value":"26"},{"begin":470,"end":533,"name":"JUMPDEST","source":1},{"begin":417,"end":539,"name":"POP","source":1},{"begin":417,"end":539,"jumpType":"[out]","name":"JUMP","source":1},{"begin":545,"end":684,"name":"tag","source":1,"value":"17"},{"begin":545,"end":684,"name":"JUMPDEST","source":1},{"begin":591,"end":596,"name":"PUSH","source":1,"value":"0"},{"begin":629,"end":635,"name":"DUP2","source":1},{"begin":616,"end":636,"name":"CALLDATALOAD","source":1},{"begin":607,"end":636,"name":"SWAP1","source":1},{"begin":607,"end":636,"name":"POP","source":1},{"begin":645,"end":678,"name":"PUSH [tag]","source":1,"value":"28"},{"begin":672,"end":677,"name":"DUP2","source":1},{"begin":645,"end":678,"name":"PUSH [tag]","source":1,"value":"16"},{"begin":645,"end":678,"jumpType":"[in]","name":"JUMP","source":1},{"begin":645,"end":678,"name":"tag","source":1,"value":"28"},{"begin":645,"end":678,"name":"JUMPDEST","source":1},{"begin":545,"end":684,"name":"SWAP3","source":1},{"begin":545,"end":684,"name":"SWAP2","source":1},{"begin":545,"end":684,"name":"POP","source":1},{"begin":545,"end":684,"name":"POP","source":1},{"begin":545,"end":684,"jumpType":"[out]","name":"JUMP","source":1},{"begin":690,"end":1019,"name":"tag","source":1,"value":"6"},{"begin":690,"end":1019,"name":"JUMPDEST","source":1},{"begin":749,"end":755,"name":"PUSH","source":1,"value":"0"},{"begin":798,"end":800,"name":"PUSH","source":1,"value":"20"},{"begin":786,"end":795,"name":"DUP3","source":1},{"begin":777,"end":784,"name":"DUP5","source":1},{"begin":773,"end":796,"name":"SUB","source":1},{"begin":769,"end":801,"name":"SLT","source":1},{"begin":766,"end":885,"name":"ISZERO","source":1},{"begin":766,"end":885,"name":"PUSH [tag]","source":1,"value":"30"},{"begin":766,"end":885,"name":"JUMPI","source":1},{"begin":804,"end":883,"name":"PUSH [tag]","source":1,"value":"31"},{"begin":804,"end":883,"name":"PUSH [tag]","source":1,"value":"13"},{"begin":804,"end":883,"jumpType":"[in]","name":"JUMP","source":1},{"begin":804,"end":883,"name":"tag","source":1,"value":"31"},{"begin":804,"end":883,"name":"JUMPDEST","source":1},{"begin":766,"end":885,"name":"tag","source":1,"value":"30"},{"begin":766,"end":885,"name":"JUMPDEST","source":1},{"begin":924,"end":925,"name":"PUSH","source":1,"value":"0"},{"begin":949,"end":1002,"name":"PUSH [tag]","source":1,"value":"32"},{"begin":994,"end":1001,"name":"DUP5","source":1},{"begin":985,"end":991,"name":"DUP3","source":1},{"begin":974,"end":983,"name":"DUP6","source":1},{"begin":970,"end":992,"name":"ADD","source":1},{"begin":949,"end":1002,"name":"PUSH [tag]","source":1,"value":"17"},{"begin":949,"end":1002,"jumpType":"[in]","name":"JUMP","source":1},{"begin":949,"end":1002,"name":"tag","source":1,"value":"32"},{"begin":949,"end":1002,"name":"JUMPDEST","source":1},{"begin":939,"end":1002,"name":"SWAP2","source":1},{"begin":939,"end":1002,"name":"POP","source":1},{"begin":895,"end":1012,"name":"POP","source":1},{"begin":690,"end":1019,"name":"SWAP3","source":1},{"begin":690,"end":1019,"name":"SWAP2","source":1},{"begin":690,"end":1019,"name":"POP","source":1},{"begin":690,"end":1019,"name":"POP","source":1},{"begin":690,"end":1019,"jumpType":"[out]","name":"JUMP","source":1},{"begin":1025,"end":1205,"name":"tag","source":1,"value":"18"},{"begin":1025,"end":1205,"name":"JUMPDEST","source":1},{"begin":1073,"end":1150,"name":"PUSH","source":1,"value":"4E487B7100000000000000000000000000000000000000000000000000000000"},{"begin":1070,"end":1071,"name":"PUSH","source":1,"value":"0"},{"begin":1063,"end":1151,"name":"MSTORE","source":1},{"begin":1170,"end":1174,"name":"PUSH","source":1,"value":"11"},{"begin":1167,"end":1168,"name":"PUSH","source":1,"value":"4"},{"begin":1160,"end":1175,"name":"MSTORE","source":1},{"begin":1194,"end":1198,"name":"PUSH","source":1,"value":"24"},{"begin":1191,"end":1192,"name":"PUSH","source":1,"value":"0"},{"begin":1184,"end":1199,"name":"REVERT","source":1},{"begin":1211,"end":1402,"name":"tag","source":1,"value":"10"},{"begin":1211,"end":1402,"name":"JUMPDEST","source":1},{"begin":1251,"end":1254,"name":"PUSH","source":1,"value":"0"},{"begin":1270,"end":1290,"name":"PUSH [tag]","source":1,"value":"35"},{"begin":1288,"end":1289,"name":"DUP3","source":1},{"begin":1270,"end":1290,"name":"PUSH [tag]","source":1,"value":"15"},{"begin":1270,"end":1290,"jumpType":"[in]","name":"JUMP","source":1},{"begin":1270,"end":1290,"name":"tag","source":1,"value":"35"},{"begin":1270,"end":1290,"name":"JUMPDEST","source":1},{"begin":1265,"end":1290,"name":"SWAP2","source":1},{"begin":1265,"end":1290,"name":"POP","source":1},{"begin":1304,"end":1324,"name":"PUSH [tag]","source":1,"value":"36"},{"begin":1322,"end":1323,"name":"DUP4","source":1},{"begin":1304,"end":1324,"name":"PUSH [tag]","source":1,"value":"15"},{"begin":1304,"end":1324,"jumpType":"[in]","name":"JUMP","source":1},{"begin":1304,"end":1324,"name":"tag","source":1,"value":"36"},{"begin":1304,"end":1324,"name":"JUMPDEST","source":1},{"begin":1299,"end":1324,"name":"SWAP3","source":1},{"begin":1299,"end":1324,"name":"POP","source":1},{"begin":1347,"end":1348,"name":"DUP3","source":1},{"begin":1344,"end":1345,"name":"DUP3","source":1},{"begin":1340,"end":1349,"name":"ADD","source":1},{"begin":1333,"end":1349,"name":"SWAP1","source":1},{"begin":1333,"end":1349,"name":"POP","source":1},{"begin":1368,"end":1371,"name":"DUP1","source":1},{"begin":1365,"end":1366,"name":"DUP3","source":1},{"begin":1362,"end":1372,"name":"GT","source":1},{"begin":1359,"end":1395,"name":"ISZERO","source":1},{"begin":1359,"end":1395,"name":"PUSH [tag]","source":1,"value":"37"},{"begin":1359,"end":1395,"name":"JUMPI","source":1},{"begin":1375,"end":1393,"name":"PUSH [tag]","source":1,"value":"38"},{"begin":1375,"end":1393,"name":"PUSH [tag]","source":1,"value":"18"},{"begin":1375,"end":1393,"jumpType":"[in]","name":"JUMP","source":1},{"begin":1375,"end":1393,"name":"tag","source":1,"value":"38"},{"begin":1375,"end":1393,"name":"JUMPDEST","source":1},{"begin":1359,"end":1395,"name":"tag","source":1,"value":"37"},{"begin":1359,"end":1395,"name":"JUMPDEST","source":1},{"begin":1211,"end":1402,"name":"SWAP3","source":1},{"begin":1211,"end":1402,"name":"SWAP2","source":1},{"begin":1211,"end":1402,"name":"POP","source":1},{"begin":1211,"end":1402,"name":"POP","source":1},{"begin":1211,"end":1402,"jumpType":"[out]","name":"JUMP","source":1}]}},"sourceList":["asm_json_no_pretty_print/input.sol","#utility.yul"]} +{".code":[{"begin":60,"end":160,"name":"PUSH","source":0,"value":"80"},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"40"},{"begin":60,"end":160,"name":"MSTORE","source":0},{"begin":60,"end":160,"name":"CALLVALUE","source":0},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"ISZERO","source":0},{"begin":60,"end":160,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":60,"end":160,"name":"JUMPI","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"REVERT","source":0},{"begin":60,"end":160,"name":"tag","source":0,"value":"1"},{"begin":60,"end":160,"name":"JUMPDEST","source":0},{"begin":60,"end":160,"name":"POP","source":0},{"begin":60,"end":160,"name":"PUSH #[$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"PUSH [$]","source":0,"value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"CODECOPY","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"RETURN","source":0}],".data":{"0":{".auxdata":"",".code":[{"begin":60,"end":160,"name":"PUSH","source":0,"value":"80"},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"40"},{"begin":60,"end":160,"name":"MSTORE","source":0},{"begin":60,"end":160,"name":"CALLVALUE","source":0},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"ISZERO","source":0},{"begin":60,"end":160,"name":"PUSH [tag]","source":0,"value":"1"},{"begin":60,"end":160,"name":"JUMPI","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"REVERT","source":0},{"begin":60,"end":160,"name":"tag","source":0,"value":"1"},{"begin":60,"end":160,"name":"JUMPDEST","source":0},{"begin":60,"end":160,"name":"POP","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"4"},{"begin":60,"end":160,"name":"CALLDATASIZE","source":0},{"begin":60,"end":160,"name":"LT","source":0},{"begin":60,"end":160,"name":"PUSH [tag]","source":0,"value":"2"},{"begin":60,"end":160,"name":"JUMPI","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"CALLDATALOAD","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"E0"},{"begin":60,"end":160,"name":"SHR","source":0},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"B3DE648B"},{"begin":60,"end":160,"name":"EQ","source":0},{"begin":60,"end":160,"name":"PUSH [tag]","source":0,"value":"3"},{"begin":60,"end":160,"name":"JUMPI","source":0},{"begin":60,"end":160,"name":"tag","source":0,"value":"2"},{"begin":60,"end":160,"name":"JUMPDEST","source":0},{"begin":60,"end":160,"name":"PUSH","source":0,"value":"0"},{"begin":60,"end":160,"name":"DUP1","source":0},{"begin":60,"end":160,"name":"REVERT","source":0},{"begin":77,"end":158,"name":"tag","source":0,"value":"3"},{"begin":77,"end":158,"name":"JUMPDEST","source":0},{"begin":77,"end":158,"name":"PUSH [tag]","source":0,"value":"4"},{"begin":77,"end":158,"name":"PUSH","source":0,"value":"4"},{"begin":77,"end":158,"name":"DUP1","source":0},{"begin":77,"end":158,"name":"CALLDATASIZE","source":0},{"begin":77,"end":158,"name":"SUB","source":0},{"begin":77,"end":158,"name":"DUP2","source":0},{"begin":77,"end":158,"name":"ADD","source":0},{"begin":77,"end":158,"name":"SWAP1","source":0},{"begin":77,"end":158,"name":"PUSH [tag]","source":0,"value":"5"},{"begin":77,"end":158,"name":"SWAP2","source":0},{"begin":77,"end":158,"name":"SWAP1","source":0},{"begin":77,"end":158,"name":"PUSH [tag]","source":0,"value":"6"},{"begin":77,"end":158,"jumpType":"[in]","name":"JUMP","source":0},{"begin":77,"end":158,"name":"tag","source":0,"value":"5"},{"begin":77,"end":158,"name":"JUMPDEST","source":0},{"begin":77,"end":158,"name":"PUSH [tag]","source":0,"value":"7"},{"begin":77,"end":158,"jumpType":"[in]","name":"JUMP","source":0},{"begin":77,"end":158,"name":"tag","source":0,"value":"4"},{"begin":77,"end":158,"name":"JUMPDEST","source":0},{"begin":77,"end":158,"name":"STOP","source":0},{"begin":77,"end":158,"name":"tag","source":0,"value":"7"},{"begin":77,"end":158,"name":"JUMPDEST","source":0},{"begin":123,"end":125,"name":"PUSH","source":0,"value":"2A"},{"begin":118,"end":125,"name":"DUP2","source":0},{"begin":118,"end":125,"name":"PUSH [tag]","source":0,"value":"9"},{"begin":118,"end":125,"name":"SWAP2","source":0},{"begin":118,"end":125,"name":"SWAP1","source":0},{"begin":118,"end":125,"name":"PUSH [tag]","source":0,"value":"10"},{"begin":118,"end":125,"jumpType":"[in]","name":"JUMP","source":0},{"begin":118,"end":125,"name":"tag","source":0,"value":"9"},{"begin":118,"end":125,"name":"JUMPDEST","source":0},{"begin":118,"end":125,"name":"SWAP1","source":0},{"begin":118,"end":125,"name":"POP","source":0},{"begin":147,"end":150,"name":"PUSH","source":0,"value":"64"},{"begin":143,"end":144,"name":"DUP2","source":0},{"begin":143,"end":150,"name":"GT","source":0},{"begin":135,"end":151,"name":"PUSH [tag]","source":0,"value":"11"},{"begin":135,"end":151,"name":"JUMPI","source":0},{"begin":135,"end":151,"name":"PUSH","source":0,"value":"0"},{"begin":135,"end":151,"name":"DUP1","source":0},{"begin":135,"end":151,"name":"REVERT","source":0},{"begin":135,"end":151,"name":"tag","source":0,"value":"11"},{"begin":135,"end":151,"name":"JUMPDEST","source":0},{"begin":77,"end":158,"name":"POP","source":0},{"begin":77,"end":158,"jumpType":"[out]","name":"JUMP","source":0},{"begin":88,"end":205,"name":"tag","source":1,"value":"13"},{"begin":88,"end":205,"name":"JUMPDEST","source":1},{"begin":197,"end":198,"name":"PUSH","source":1,"value":"0"},{"begin":194,"end":195,"name":"DUP1","source":1},{"begin":187,"end":199,"name":"REVERT","source":1},{"begin":334,"end":411,"name":"tag","source":1,"value":"15"},{"begin":334,"end":411,"name":"JUMPDEST","source":1},{"begin":371,"end":378,"name":"PUSH","source":1,"value":"0"},{"begin":400,"end":405,"name":"DUP2","source":1},{"begin":389,"end":405,"name":"SWAP1","source":1},{"begin":389,"end":405,"name":"POP","source":1},{"begin":334,"end":411,"name":"SWAP2","source":1},{"begin":334,"end":411,"name":"SWAP1","source":1},{"begin":334,"end":411,"name":"POP","source":1},{"begin":334,"end":411,"jumpType":"[out]","name":"JUMP","source":1},{"begin":417,"end":539,"name":"tag","source":1,"value":"16"},{"begin":417,"end":539,"name":"JUMPDEST","source":1},{"begin":490,"end":514,"name":"PUSH [tag]","source":1,"value":"25"},{"begin":508,"end":513,"name":"DUP2","source":1},{"begin":490,"end":514,"name":"PUSH [tag]","source":1,"value":"15"},{"begin":490,"end":514,"jumpType":"[in]","name":"JUMP","source":1},{"begin":490,"end":514,"name":"tag","source":1,"value":"25"},{"begin":490,"end":514,"name":"JUMPDEST","source":1},{"begin":483,"end":488,"name":"DUP2","source":1},{"begin":480,"end":515,"name":"EQ","source":1},{"begin":470,"end":533,"name":"PUSH [tag]","source":1,"value":"26"},{"begin":470,"end":533,"name":"JUMPI","source":1},{"begin":529,"end":530,"name":"PUSH","source":1,"value":"0"},{"begin":526,"end":527,"name":"DUP1","source":1},{"begin":519,"end":531,"name":"REVERT","source":1},{"begin":470,"end":533,"name":"tag","source":1,"value":"26"},{"begin":470,"end":533,"name":"JUMPDEST","source":1},{"begin":417,"end":539,"name":"POP","source":1},{"begin":417,"end":539,"jumpType":"[out]","name":"JUMP","source":1},{"begin":545,"end":684,"name":"tag","source":1,"value":"17"},{"begin":545,"end":684,"name":"JUMPDEST","source":1},{"begin":591,"end":596,"name":"PUSH","source":1,"value":"0"},{"begin":629,"end":635,"name":"DUP2","source":1},{"begin":616,"end":636,"name":"CALLDATALOAD","source":1},{"begin":607,"end":636,"name":"SWAP1","source":1},{"begin":607,"end":636,"name":"POP","source":1},{"begin":645,"end":678,"name":"PUSH [tag]","source":1,"value":"28"},{"begin":672,"end":677,"name":"DUP2","source":1},{"begin":645,"end":678,"name":"PUSH [tag]","source":1,"value":"16"},{"begin":645,"end":678,"jumpType":"[in]","name":"JUMP","source":1},{"begin":645,"end":678,"name":"tag","source":1,"value":"28"},{"begin":645,"end":678,"name":"JUMPDEST","source":1},{"begin":545,"end":684,"name":"SWAP3","source":1},{"begin":545,"end":684,"name":"SWAP2","source":1},{"begin":545,"end":684,"name":"POP","source":1},{"begin":545,"end":684,"name":"POP","source":1},{"begin":545,"end":684,"jumpType":"[out]","name":"JUMP","source":1},{"begin":690,"end":1019,"name":"tag","source":1,"value":"6"},{"begin":690,"end":1019,"name":"JUMPDEST","source":1},{"begin":749,"end":755,"name":"PUSH","source":1,"value":"0"},{"begin":798,"end":800,"name":"PUSH","source":1,"value":"20"},{"begin":786,"end":795,"name":"DUP3","source":1},{"begin":777,"end":784,"name":"DUP5","source":1},{"begin":773,"end":796,"name":"SUB","source":1},{"begin":769,"end":801,"name":"SLT","source":1},{"begin":766,"end":885,"name":"ISZERO","source":1},{"begin":766,"end":885,"name":"PUSH [tag]","source":1,"value":"30"},{"begin":766,"end":885,"name":"JUMPI","source":1},{"begin":804,"end":883,"name":"PUSH [tag]","source":1,"value":"31"},{"begin":804,"end":883,"name":"PUSH [tag]","source":1,"value":"13"},{"begin":804,"end":883,"jumpType":"[in]","name":"JUMP","source":1},{"begin":804,"end":883,"name":"tag","source":1,"value":"31"},{"begin":804,"end":883,"name":"JUMPDEST","source":1},{"begin":766,"end":885,"name":"tag","source":1,"value":"30"},{"begin":766,"end":885,"name":"JUMPDEST","source":1},{"begin":924,"end":925,"name":"PUSH","source":1,"value":"0"},{"begin":949,"end":1002,"name":"PUSH [tag]","source":1,"value":"32"},{"begin":994,"end":1001,"name":"DUP5","source":1},{"begin":985,"end":991,"name":"DUP3","source":1},{"begin":974,"end":983,"name":"DUP6","source":1},{"begin":970,"end":992,"name":"ADD","source":1},{"begin":949,"end":1002,"name":"PUSH [tag]","source":1,"value":"17"},{"begin":949,"end":1002,"jumpType":"[in]","name":"JUMP","source":1},{"begin":949,"end":1002,"name":"tag","source":1,"value":"32"},{"begin":949,"end":1002,"name":"JUMPDEST","source":1},{"begin":939,"end":1002,"name":"SWAP2","source":1},{"begin":939,"end":1002,"name":"POP","source":1},{"begin":895,"end":1012,"name":"POP","source":1},{"begin":690,"end":1019,"name":"SWAP3","source":1},{"begin":690,"end":1019,"name":"SWAP2","source":1},{"begin":690,"end":1019,"name":"POP","source":1},{"begin":690,"end":1019,"name":"POP","source":1},{"begin":690,"end":1019,"jumpType":"[out]","name":"JUMP","source":1},{"begin":1025,"end":1205,"name":"tag","source":1,"value":"18"},{"begin":1025,"end":1205,"name":"JUMPDEST","source":1},{"begin":1073,"end":1150,"name":"PUSH","source":1,"value":"4E487B7100000000000000000000000000000000000000000000000000000000"},{"begin":1070,"end":1071,"name":"PUSH","source":1,"value":"0"},{"begin":1063,"end":1151,"name":"MSTORE","source":1},{"begin":1170,"end":1174,"name":"PUSH","source":1,"value":"11"},{"begin":1167,"end":1168,"name":"PUSH","source":1,"value":"4"},{"begin":1160,"end":1175,"name":"MSTORE","source":1},{"begin":1194,"end":1198,"name":"PUSH","source":1,"value":"24"},{"begin":1191,"end":1192,"name":"PUSH","source":1,"value":"0"},{"begin":1184,"end":1199,"name":"REVERT","source":1},{"begin":1211,"end":1402,"name":"tag","source":1,"value":"10"},{"begin":1211,"end":1402,"name":"JUMPDEST","source":1},{"begin":1251,"end":1254,"name":"PUSH","source":1,"value":"0"},{"begin":1270,"end":1290,"name":"PUSH [tag]","source":1,"value":"35"},{"begin":1288,"end":1289,"name":"DUP3","source":1},{"begin":1270,"end":1290,"name":"PUSH [tag]","source":1,"value":"15"},{"begin":1270,"end":1290,"jumpType":"[in]","name":"JUMP","source":1},{"begin":1270,"end":1290,"name":"tag","source":1,"value":"35"},{"begin":1270,"end":1290,"name":"JUMPDEST","source":1},{"begin":1265,"end":1290,"name":"SWAP2","source":1},{"begin":1265,"end":1290,"name":"POP","source":1},{"begin":1304,"end":1324,"name":"PUSH [tag]","source":1,"value":"36"},{"begin":1322,"end":1323,"name":"DUP4","source":1},{"begin":1304,"end":1324,"name":"PUSH [tag]","source":1,"value":"15"},{"begin":1304,"end":1324,"jumpType":"[in]","name":"JUMP","source":1},{"begin":1304,"end":1324,"name":"tag","source":1,"value":"36"},{"begin":1304,"end":1324,"name":"JUMPDEST","source":1},{"begin":1299,"end":1324,"name":"SWAP3","source":1},{"begin":1299,"end":1324,"name":"POP","source":1},{"begin":1347,"end":1348,"name":"DUP3","source":1},{"begin":1344,"end":1345,"name":"DUP3","source":1},{"begin":1340,"end":1349,"name":"ADD","source":1},{"begin":1333,"end":1349,"name":"SWAP1","source":1},{"begin":1333,"end":1349,"name":"POP","source":1},{"begin":1368,"end":1371,"name":"DUP1","source":1},{"begin":1365,"end":1366,"name":"DUP3","source":1},{"begin":1362,"end":1372,"name":"GT","source":1},{"begin":1359,"end":1395,"name":"ISZERO","source":1},{"begin":1359,"end":1395,"name":"PUSH [tag]","source":1,"value":"37"},{"begin":1359,"end":1395,"name":"JUMPI","source":1},{"begin":1375,"end":1393,"name":"PUSH [tag]","source":1,"value":"38"},{"begin":1375,"end":1393,"name":"PUSH [tag]","source":1,"value":"18"},{"begin":1375,"end":1393,"jumpType":"[in]","name":"JUMP","source":1},{"begin":1375,"end":1393,"name":"tag","source":1,"value":"38"},{"begin":1375,"end":1393,"name":"JUMPDEST","source":1},{"begin":1359,"end":1395,"name":"tag","source":1,"value":"37"},{"begin":1359,"end":1395,"name":"JUMPDEST","source":1},{"begin":1211,"end":1402,"name":"SWAP3","source":1},{"begin":1211,"end":1402,"name":"SWAP2","source":1},{"begin":1211,"end":1402,"name":"POP","source":1},{"begin":1211,"end":1402,"name":"POP","source":1},{"begin":1211,"end":1402,"jumpType":"[out]","name":"JUMP","source":1}],"index":0}},"sourceList":["asm_json_no_pretty_print/input.sol","#utility.yul"]} diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol index 3a93659f4..b70de0294 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol @@ -13,4 +13,6 @@ contract A { // SMTEngine: all // ---- // Warning 6328: (124-146): CHC: Assertion violation happens here. -// Info 1391: CHC: 5 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. +// Warning 6328: (150-173): CHC: Assertion violation might happen here. +// Info 1391: CHC: 4 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. +// Warning 4661: (150-173): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/mod_signed.sol b/test/libsolidity/smtCheckerTests/operators/mod_signed.sol index 2e640f53f..2e30d3919 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_signed.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_signed.sol @@ -13,4 +13,4 @@ contract C { // ---- // Warning 6328: (131-148): CHC: Assertion violation might happen here. // Info 1391: CHC: 3 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. -// Info 6002: BMC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. +// Warning 7812: (131-148): BMC: Assertion violation might happen here. diff --git a/test/libyul/objectCompiler/manySubObjects.yul b/test/libyul/objectCompiler/manySubObjects.yul new file mode 100644 index 000000000..58918b2b8 --- /dev/null +++ b/test/libyul/objectCompiler/manySubObjects.yul @@ -0,0 +1,435 @@ +object "root" { + code { + sstore(0, datasize("root")) + sstore(1, datasize("0")) + sstore(2, datasize("1")) + sstore(3, datasize("2")) + sstore(4, datasize("3")) + sstore(5, datasize("4")) + sstore(6, datasize("5")) + sstore(7, datasize("6")) + sstore(8, datasize("7")) + sstore(9, datasize("8")) + sstore(10, datasize("9")) + sstore(11, datasize("a")) + sstore(12, datasize("b")) + sstore(13, datasize("c")) + sstore(14, datasize("d")) + sstore(15, datasize("e")) + sstore(16, datasize("f")) + sstore(17, datasize("10")) + } + + object "0" { + code { + sstore(100, 0) + sstore(200, datasize("sub0")) + } + object "sub0" { + code { + sstore(300, 0) + } + } + } + + object "1" { + code { + sstore(100, 1) + } + } + + object "2" { + code { + sstore(101, 2) + } + } + + object "3" { + code { + sstore(102, 3) + } + } + + object "4" { + code { + sstore(103, 4) + } + } + + object "5" { + code { + sstore(104, 5) + } + } + + object "6" { + code { + sstore(105, 6) + } + } + + object "7" { + code { + sstore(106, 7) + } + } + + object "8" { + code { + sstore(107, 8) + } + } + + object "9" { + code { + sstore(108, 9) + } + } + + object "a" { + code { + sstore(109, 10) + } + } + + object "b" { + code { + sstore(110, 11) + } + } + + object "c" { + code { + sstore(111, 12) + } + } + + object "d" { + code { + sstore(112, 13) + } + } + + object "e" { + code { + sstore(113, 14) + } + } + + object "f" { + code { + sstore(114, 15) + } + } + + object "10" { + code { + sstore(115, 16) + sstore(201, datasize("sub10")) + } + object "sub10" { + code { + sstore(300, 16) + } + } + } +} +// ---- +// Assembly: +// /* "source":41:57 */ +// bytecodeSize +// /* "source":38:39 */ +// 0x00 +// /* "source":31:58 */ +// sstore +// /* "source":75:88 */ +// dataSize(sub_0) +// /* "source":72:73 */ +// 0x01 +// /* "source":65:89 */ +// sstore +// /* "source":106:119 */ +// dataSize(sub_1) +// /* "source":103:104 */ +// 0x02 +// /* "source":96:120 */ +// sstore +// /* "source":137:150 */ +// dataSize(sub_2) +// /* "source":134:135 */ +// 0x03 +// /* "source":127:151 */ +// sstore +// /* "source":168:181 */ +// dataSize(sub_3) +// /* "source":165:166 */ +// 0x04 +// /* "source":158:182 */ +// sstore +// /* "source":199:212 */ +// dataSize(sub_4) +// /* "source":196:197 */ +// 0x05 +// /* "source":189:213 */ +// sstore +// /* "source":230:243 */ +// dataSize(sub_5) +// /* "source":227:228 */ +// 0x06 +// /* "source":220:244 */ +// sstore +// /* "source":261:274 */ +// dataSize(sub_6) +// /* "source":258:259 */ +// 0x07 +// /* "source":251:275 */ +// sstore +// /* "source":292:305 */ +// dataSize(sub_7) +// /* "source":289:290 */ +// 0x08 +// /* "source":282:306 */ +// sstore +// /* "source":323:336 */ +// dataSize(sub_8) +// /* "source":320:321 */ +// 0x09 +// /* "source":313:337 */ +// sstore +// /* "source":355:368 */ +// dataSize(sub_9) +// /* "source":351:353 */ +// 0x0a +// /* "source":344:369 */ +// sstore +// /* "source":387:400 */ +// dataSize(sub_10) +// /* "source":383:385 */ +// 0x0b +// /* "source":376:401 */ +// sstore +// /* "source":419:432 */ +// dataSize(sub_11) +// /* "source":415:417 */ +// 0x0c +// /* "source":408:433 */ +// sstore +// /* "source":451:464 */ +// dataSize(sub_12) +// /* "source":447:449 */ +// 0x0d +// /* "source":440:465 */ +// sstore +// /* "source":483:496 */ +// dataSize(sub_13) +// /* "source":479:481 */ +// 0x0e +// /* "source":472:497 */ +// sstore +// /* "source":515:528 */ +// dataSize(sub_14) +// /* "source":511:513 */ +// 0x0f +// /* "source":504:529 */ +// sstore +// /* "source":547:560 */ +// dataSize(sub_15) +// /* "source":543:545 */ +// 0x10 +// /* "source":536:561 */ +// sstore +// /* "source":579:593 */ +// dataSize(sub_16) +// /* "source":575:577 */ +// 0x11 +// /* "source":568:594 */ +// sstore +// stop +// +// sub_0: assembly { +// /* "source":644:645 */ +// 0x00 +// /* "source":639:642 */ +// 0x64 +// /* "source":632:646 */ +// sstore +// /* "source":665:681 */ +// dataSize(sub_0) +// /* "source":660:663 */ +// 0xc8 +// /* "source":653:682 */ +// sstore +// stop +// +// sub_0: assembly { +// /* "source":742:743 */ +// 0x00 +// /* "source":737:740 */ +// 0x012c +// /* "source":730:744 */ +// sstore +// } +// } +// +// sub_1: assembly { +// /* "source":808:809 */ +// 0x01 +// /* "source":803:806 */ +// 0x64 +// /* "source":796:810 */ +// sstore +// } +// +// sub_2: assembly { +// /* "source":866:867 */ +// 0x02 +// /* "source":861:864 */ +// 0x65 +// /* "source":854:868 */ +// sstore +// } +// +// sub_3: assembly { +// /* "source":924:925 */ +// 0x03 +// /* "source":919:922 */ +// 0x66 +// /* "source":912:926 */ +// sstore +// } +// +// sub_4: assembly { +// /* "source":982:983 */ +// 0x04 +// /* "source":977:980 */ +// 0x67 +// /* "source":970:984 */ +// sstore +// } +// +// sub_5: assembly { +// /* "source":1040:1041 */ +// 0x05 +// /* "source":1035:1038 */ +// 0x68 +// /* "source":1028:1042 */ +// sstore +// } +// +// sub_6: assembly { +// /* "source":1098:1099 */ +// 0x06 +// /* "source":1093:1096 */ +// 0x69 +// /* "source":1086:1100 */ +// sstore +// } +// +// sub_7: assembly { +// /* "source":1156:1157 */ +// 0x07 +// /* "source":1151:1154 */ +// 0x6a +// /* "source":1144:1158 */ +// sstore +// } +// +// sub_8: assembly { +// /* "source":1214:1215 */ +// 0x08 +// /* "source":1209:1212 */ +// 0x6b +// /* "source":1202:1216 */ +// sstore +// } +// +// sub_9: assembly { +// /* "source":1272:1273 */ +// 0x09 +// /* "source":1267:1270 */ +// 0x6c +// /* "source":1260:1274 */ +// sstore +// } +// +// sub_10: assembly { +// /* "source":1330:1332 */ +// 0x0a +// /* "source":1325:1328 */ +// 0x6d +// /* "source":1318:1333 */ +// sstore +// } +// +// sub_11: assembly { +// /* "source":1389:1391 */ +// 0x0b +// /* "source":1384:1387 */ +// 0x6e +// /* "source":1377:1392 */ +// sstore +// } +// +// sub_12: assembly { +// /* "source":1448:1450 */ +// 0x0c +// /* "source":1443:1446 */ +// 0x6f +// /* "source":1436:1451 */ +// sstore +// } +// +// sub_13: assembly { +// /* "source":1507:1509 */ +// 0x0d +// /* "source":1502:1505 */ +// 0x70 +// /* "source":1495:1510 */ +// sstore +// } +// +// sub_14: assembly { +// /* "source":1566:1568 */ +// 0x0e +// /* "source":1561:1564 */ +// 0x71 +// /* "source":1554:1569 */ +// sstore +// } +// +// sub_15: assembly { +// /* "source":1625:1627 */ +// 0x0f +// /* "source":1620:1623 */ +// 0x72 +// /* "source":1613:1628 */ +// sstore +// } +// +// sub_16: assembly { +// /* "source":1685:1687 */ +// 0x10 +// /* "source":1680:1683 */ +// 0x73 +// /* "source":1673:1688 */ +// sstore +// /* "source":1707:1724 */ +// dataSize(sub_0) +// /* "source":1702:1705 */ +// 0xc9 +// /* "source":1695:1725 */ +// sstore +// stop +// +// sub_0: assembly { +// /* "source":1786:1788 */ +// 0x10 +// /* "source":1781:1784 */ +// 0x012c +// /* "source":1774:1789 */ +// sstore +// } +// } +// Bytecode: 605a5f55600a600155600560025560056003556005600455600560055560056006556005600755600560085560056009556005600a556005600b556005600c556005600d556005600e556005600f556005601055600b601155fe +// Opcodes: PUSH1 0x5A PUSH0 SSTORE PUSH1 0xA PUSH1 0x1 SSTORE PUSH1 0x5 PUSH1 0x2 SSTORE PUSH1 0x5 PUSH1 0x3 SSTORE PUSH1 0x5 PUSH1 0x4 SSTORE PUSH1 0x5 PUSH1 0x5 SSTORE PUSH1 0x5 PUSH1 0x6 SSTORE PUSH1 0x5 PUSH1 0x7 SSTORE PUSH1 0x5 PUSH1 0x8 SSTORE PUSH1 0x5 PUSH1 0x9 SSTORE PUSH1 0x5 PUSH1 0xA SSTORE PUSH1 0x5 PUSH1 0xB SSTORE PUSH1 0x5 PUSH1 0xC SSTORE PUSH1 0x5 PUSH1 0xD SSTORE PUSH1 0x5 PUSH1 0xE SSTORE PUSH1 0x5 PUSH1 0xF SSTORE PUSH1 0x5 PUSH1 0x10 SSTORE PUSH1 0xB PUSH1 0x11 SSTORE INVALID +// SourceMappings: 41:16:0:-:0;38:1;31:27;75:13;72:1;65:24;106:13;103:1;96:24;137:13;134:1;127:24;168:13;165:1;158:24;199:13;196:1;189:24;230:13;227:1;220:24;261:13;258:1;251:24;292:13;289:1;282:24;323:13;320:1;313:24;355:13;351:2;344:25;387:13;383:2;376:25;419:13;415:2;408:25;451:13;447:2;440:25;483:13;479:2;472:25;515:13;511:2;504:25;547:13;543:2;536:25;579:14;575:2;568:26