{ "contracts": { "A": { "C": { "evm": { "bytecode": { "generatedSources": [], "object": "" }, "deployedBytecode": { "object": "" } }, "ir": " /// @use-src 0:\"A\" object \"C_3\" { code { /// @src 0:79:92 \"contract C {}\" mstore(64, memoryguard(128)) if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } constructor_C_3() let _1 := allocate_unbounded() codecopy(_1, dataoffset(\"C_3_deployed\"), datasize(\"C_3_deployed\")) return(_1, datasize(\"C_3_deployed\")) function allocate_unbounded() -> memPtr { memPtr := mload(64) } function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { revert(0, 0) } /// @src 0:79:92 \"contract C {}\" function constructor_C_3() { /// @src 0:79:92 \"contract C {}\" } /// @src 0:79:92 \"contract C {}\" } /// @use-src 0:\"A\" object \"C_3_deployed\" { code { /// @src 0:79:92 \"contract C {}\" mstore(64, memoryguard(128)) revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() function shift_right_224_unsigned(value) -> newValue { newValue := shr(224, value) } function allocate_unbounded() -> memPtr { memPtr := mload(64) } function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } } data \".metadata\" hex\"\" } } " }, "D": { "evm": { "bytecode": { "generatedSources": [], "object": "" }, "deployedBytecode": { "object": "" } }, "ir": " /// @use-src 0:\"A\" object \"D_16\" { code { /// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\" mstore(64, memoryguard(128)) if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } constructor_D_16() let _1 := allocate_unbounded() codecopy(_1, dataoffset(\"D_16_deployed\"), datasize(\"D_16_deployed\")) return(_1, datasize(\"D_16_deployed\")) function allocate_unbounded() -> memPtr { memPtr := mload(64) } function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { revert(0, 0) } /// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\" function constructor_D_16() { /// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\" } /// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\" } /// @use-src 0:\"A\" object \"D_16_deployed\" { code { /// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\" mstore(64, memoryguard(128)) if iszero(lt(calldatasize(), 4)) { let selector := shift_right_224_unsigned(calldataload(0)) switch selector case 0x26121ff0 { // f() external_fun_f_15() } default {} } revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() function shift_right_224_unsigned(value) -> newValue { newValue := shr(224, value) } function allocate_unbounded() -> memPtr { memPtr := mload(64) } function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { revert(0, 0) } function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { revert(0, 0) } function abi_decode_tuple_(headStart, dataEnd) { if slt(sub(dataEnd, headStart), 0) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() } } function abi_encode_tuple__to__fromStack(headStart ) -> tail { tail := add(headStart, 0) } function external_fun_f_15() { if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } abi_decode_tuple_(4, calldatasize()) fun_f_15() let memPos := allocate_unbounded() let memEnd := abi_encode_tuple__to__fromStack(memPos ) return(memPos, sub(memEnd, memPos)) } function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } function panic_error_0x41() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x41) revert(0, 0x24) } function revert_forward_1() { let pos := allocate_unbounded() returndatacopy(pos, 0, returndatasize()) revert(pos, returndatasize()) } /// @ast-id 15 /// @src 0:106:144 \"function f() public { C c = new C(); }\" function fun_f_15() { /// @src 0:134:141 \"new C()\" let _1 := allocate_unbounded() let _2 := add(_1, datasize(\"C_3\")) if or(gt(_2, 0xffffffffffffffff), lt(_2, _1)) { panic_error_0x41() } datacopy(_1, dataoffset(\"C_3\"), datasize(\"C_3\")) _2 := abi_encode_tuple__to__fromStack(_2) let expr_12_address := create(0, _1, sub(_2, _1)) if iszero(expr_12_address) { revert_forward_1() } /// @src 0:128:141 \"C c = new C()\" let var_c_8_address := expr_12_address } /// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\" } /// @use-src 0:\"A\" object \"C_3\" { code { /// @src 0:79:92 \"contract C {}\" mstore(64, memoryguard(128)) if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } constructor_C_3() let _1 := allocate_unbounded() codecopy(_1, dataoffset(\"C_3_deployed\"), datasize(\"C_3_deployed\")) return(_1, datasize(\"C_3_deployed\")) function allocate_unbounded() -> memPtr { memPtr := mload(64) } function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { revert(0, 0) } /// @src 0:79:92 \"contract C {}\" function constructor_C_3() { /// @src 0:79:92 \"contract C {}\" } /// @src 0:79:92 \"contract C {}\" } /// @use-src 0:\"A\" object \"C_3_deployed\" { code { /// @src 0:79:92 \"contract C {}\" mstore(64, memoryguard(128)) revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() function shift_right_224_unsigned(value) -> newValue { newValue := shr(224, value) } function allocate_unbounded() -> memPtr { memPtr := mload(64) } function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } } data \".metadata\" hex\"\" } } data \".metadata\" hex\"\" } } " } } }, "errors": [ { "component": "general", "errorCode": "2072", "formattedMessage": "Warning: Unused local variable. --> A:2:93: | 2 | pragma solidity >=0.0; pragma abicoder v2; contract C {} contract D { function f() public { C c = new C(); } } | ^^^ ", "message": "Unused local variable.", "severity": "warning", "sourceLocation": { "end": 131, "file": "A", "start": 128 }, "type": "Warning" } ], "sources": { "A": { "id": 0 } } }