Closed
Description
Version: 0.1.0-dev.9+commit.82ab39d.llvm-18.1.8
function copy(uint dstOffset, uint srcOffset, uint length) pure returns (bytes memory out) {
out =
hex"2222222222222222333333333333333344444444444444445555555555555555"
hex"6666666666666666777777777777777788888888888888889999999999999999"
hex"aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbccccccccccccccccdddddddddddddddd";
assembly {
mcopy(add(add(out, 0x20), dstOffset), add(add(out, 0x20), srcOffset), length)
}
}
contract C {
function mcopy_to_right_overlap() public pure returns (bytes memory) {
return copy(0x20, 0x10, 0x30);
}
}
Run with resolc
I have set up an execution environment that can directly execute the bytecode generated by revive compilation.
compile
resolc --solc solc test.sol --combined-json hashes,bin,abi -o /tmp/tmpdh_0t_pr --overwrite
execute
/mnt/sdd1/sbw/crossCompilerFuzz/compiler/revive/target/debug/revive-runner 50564d0000e010000000000000010700c14000c00040047106000000000e0000001c0000002a000000350000004700000063616c6c5f646174615f636f707963616c6c5f646174615f6c6f616463616c6c5f646174615f73697a657365616c5f72657475726e7365745f696d6d757461626c655f6461746176616c75655f7472616e736665727265640511028e1e0463616c6c8e25066465706c6f7906904024028e2edf00f800fd001c018601b601cc01de010202a102b102fc0216037b031404cf049d055406690684068f06ee068a07ad071608c108d9093a0c4e0c670cd60cb40ddf0d080e250e2d0e64798b7a103307520a41330a000001ac8a39c8980883871f8477e054370000010a330732003908000002ae78143d0700000264783307200002c8870732003307200002c88707320032007c8b95880195ac0178ab64caab9cf43200aa876e978a2098aa20977b2098bb20c89b0bc9ba0a979b019abbaeab20ae873751094ec87909647a017c8b95880195ac0178ab64caab9cf42836510934c87909647a017c8b95880195ac0178ab64caab9cf4281c51091a839aff01c8a80b7cbb9599ffc8a70c78cb83aaff5209f032009511f07b10087b158475013307330850100226ff3e070800020a02013e071000023b0520000351050750100409501006e6009511c07b10387b15307b16289515408411e06416330740330820501008e9fe5107b3003308080002210358000221035000022103480002140700000000000000807b68103e076000029517e08477e07b67186471491718491710491708490783770a0501826a1882a71082a81882a90882aad49808d4a707d4870752074b33078000330850100a7ffe510749826710837780007b6718330833090a01390814000251080d330740000383770a040133078000330850100c4ffe510719330782681833090a03013307330850100e39fe5207040081681033070133093300100a0301951100ff7b10f8007b15f0007b16e800951500018411e0641633074033082050101203fe5107a30033090800023308100002210358000221035000027b68583908100002140700000000000000803e076000027b695021034800025418035f8367c00033080a01018067dc0097772014080000000048e8dcafab87419517e08477e07b67486471491718491710491708490783770a0501826a4882a71082a81882a90882aad49808d4a707d4870752070c8267588177551704123307330850101464fd5207fe040033074033082050101654fd5107f4826a5082a74082a84882a95082a2586f7b6f8a6f9c6f228eb78ea8dbb7088ec7882980859901dbc709d4ba07db78095109193300189511f07b10087b1533082033073300402807fd7b67307b6a387b6c487b62587b6b4033074033082050101aeffc51078f82645895478000d84708826c48c88c0bd8cb0ada880a826938c89a0ad89a08826240c828086f836faa6fb86f77826b507bb7587bb8507bba48d49407d42c08d48707987720d48909979920d497077bb34052073bff83473308207b672850101c8afc51072aff826750826a28c8a70746171f6046171e46171d46171c46171b46171a46171946171846171746171646171546171446171346171246171146171046170f46170e46170d46170c46170b46170a4617094617084617074617064617054617044617034617024617011408e0ffffff00000000826958d889088269489498826930949846075108a3fe83a7203308207b672050101ef1fb510791fe826750826820c8870746171f5546171e5546171d5546171c5546171b5546171a554617195546171855461717444617164446171544461714444617134446171244461711444617104446170f3346170e3346170d3346170c3346170b3346170a334617093346170833461707224617062246170522461704224617032246170222461701221409c0ffffff00000000826a58d89a09826a4894a9826a3094a94607225109ebfd8267288377403308207b672050102036fb5107d6fd826750826920c8790946191f990046191e990046191d990046191c990046191b990046191a9900461919990046191899004619178800461916880046191588004619148800461913880046191288004619118800461910880046190f7746190e7746190d7746190c7746190b7746190a7746190977461908771407a0ffffff00000000826858d8780782684894878268309487461907664619066646190566461904664619036646190266461901667b693046096651071dfd8267288377603308207b671850102268fa510708fd826750826818c8870746171fdd0046171edd0046171ddd0046171cdd0046171bdd0046171add00461719dd00461718dd00461717cc00461716cc00461715cc00461714cc00461713cc00461712cc00461711cc00461710cc0046170fbb0046170ebb0046170dbb0046170cbb0046170bbb0046170abb00461709bb00461708bb00461707aa00461706aa00461705aa00461704aa00461703aa00461702aa00461701aa004607aa00330830826720501024b1f9510751fc8267288377303308307b67285010269cf951073cfc826850826728c87808826730330028957930647a28c9f933074033082050102a76f9510716fc826a5082a75882a85082a94882aa406f7b7b6b306f8c7b6c186f987b68206fa97b69288267387b67708267487b67688267587b67607b6998007b6890007b6c88007b6b80009567a00095688000956960826a407b6a7850102cc400826718647c8268286482d48707826a20826830d4a808d47808988820d4a707977720d48707520792fb64a48263a0008268a8008267b8007b6758826ab000826030d8030bd3c807d8c809da7b096447c94a04d87a0a826758c92707c9a707d8940ac9a707c99409c9c808c9b808d48707c90308d49808d47808d49707988820977720d48707520732fb8264308347bf43087b67487b685850102e7bf851071bfb826750826848be780833078269580a030181685033070133093300300a0301951188fe7b1070017b1568017b166001828b10828a18828c0882857b1a38017b1c5801d4ac08d4b50ad48a0a98aa207b1b4001d4b808978820d4a8087b175208c8058297187b1728018296108297087b17300182977b1720017b15500183553308206457501032eff751079d0533070800027b1748017b151801c8570746171f20821b2001d46b0882192801821a3001d4a909d498089888207b160801d46909979920d4980846171e46171d46171c46171b46171a46171946171846171746171646171546171446171346171246171146171046170f46170e46170d46170c46170b46170a46170946170846170746170646170546170446170346170246170146075208040583b73308207b17100150103444f75107f2048217400182183801d487091407e0ffffff0000000082185001d878078218580194877b190001949782194801821818015107be0482171001c897077c7a187b1a207c75197c7a1a7b1a107c7a1b7b1a087c7a1c7b1a387c7a1d7b1a187c7a1e7b1a307c7a1f7b1a287c7a107b1a607c7a117b1a407c7a127b1a507c7a137b1a487c7a147b1a787c7a157b1a587c7a167b1a707c7a177b1a687c7a087b1aa0007c7a097b1a80007c7a0a7b1a90007c7a0b7b1a88007c7a0c7b1ab8007c7a0d7b1a98007c7a0e7b1ab0007c7a0f7b1aa8007c7a7b1ae0007c7a017b1ac0007c7a027b1ad0007c7a037b1ac8007c7a047b1af8007c7a057b1ad8007c7a067b1af0007c77077b17e80083862033082064675010362cf65107da03975508821720d45707821810978810821908979918d49808d48707821818978808821938d49808821930979910821a2897aa18d4a909d49808978820d48707821840978808821960d49808821950979910821a4897aa18d4a909d49808821958979908821a78d4a909821a7097aa10821b6897bb18d4ba0ad4a909979920d4980882198000979908821aa000d4a909821a900097aa10821b880097bb18d4ba0ad4a909821a980097aa08821bb800d4ba0a821bb00097bb10821ca80097cc18d4cb0bd4ba0a97aa20d4a909821ac00097aa08821be000d4ba0a821bd00097bb10821cc80097cc18d4cb0bd4ba0a821bd80097bb08821cf800d4cb0b821cf00097cc108215e800975518d45c0cd4cb0b97bb20d4ba0a821b4801c8b60698ab38786b0798ab30786b0698ab28786b0598ab20786b0498ab18786b0398ab10786b0298ab08786b01989b38786b0f989b30786b0e989b28786b0d989b20786b0c989b18786b0b989b10786b0a989b08786b09988b38786b17988b30786b16988b28786b15988b20786b14988b18786b13988b10786b12988b08786b11987b38786b1f987b30786b1e987b28786b1d987b20786b1c987b18786b1b987b10786b1a987b08786b19140cc0ffffff0000000082155001d8c50c82155801945c82150001945c786908786a78681078671882160801510ce601821c2801d46c0c140be0ffffff0000000082162001d8b60b82163001946b94cb510bc2016faa6f9b6f8c6f79d4b907d4ac08d48707987720d4b808978820d487075207a1017b1c08017b1b20017b1a2801821718018377407b19300183967b1718016468501038cbf351077901821710018375206457646850103ab7f3510765018218480182171801c88707c85808646950103cf9f38217500182183001c88707d8870882195801821b0801c8b909c88909d3b90ad8b90bdaa80b82184001821c2001c8c808c88b0bd88b0ad8c808821c380182162801c86c0cc8c808c8a808d4b808140ac0ffffff00000000d8a70a949a948a510aee00837540330820645750103e2ff382165107db0082174801c8750546151f46151e46151d46151c46151b46151a46151946151846151746151646151546151446151346151246151146151046150f46150e46150d46150c46150b46150a46150946150846150746150646150546150446150346150246150146058217300195771f1408e0ffffff01000000d2870782185001c88707d88708821a5801c88a09d8a90ada880a82184001c88a0ad88a08821b3801c8b808957b40d87b07c8790cd89c09da7709c8a909d8a907c887077b6b7b6c087b69107b671882107001821568018216600195117801320000510757330508000221032000022103180002210310000221030800024e487b7133070433082050104226f251072c4815200000004148151c48151848151448151048150c4815084815043308243307501044fdf15207040083583307013309240a03330733004628b0f23307501046abf2330701501048a3f200a58424092a2414524895544a922429495a52296949a5644a4a4a4a85d010122149929210218410404292925493a424894212a943428d424aad9049694444a42444082124041012226a248024294935494a92141562129224a9aa942449925292244942124992244955922449924449882491244992244992244992244900494a45921049222222222222222222222222222222228024a54492844812420821841042082184101111111140925244444424912421928410420821841042082184104208218410420821921049122249929284489294524a922411111149424a4992248922229124294992244992248994244492d2a434222249114912498a4412459442848844242249244992244992244992244992a4281122220144a2282222499224499224499224499224914824128944a24824128944229114224992244992244992244992244992244924128924914824922491482492442291489244922449922449922449922449922449922449922449028844514a22220144a2a22a4992444444a22844a44244248588242249129124114912402a92421149922449922449922449922445024824912492489224494922229a1042089084049224490a595249212100 afdce848
vm output
0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006022222222222222223333333333333333444444444444444455555555555555554444444444444444555555555555555544444444444444445555
Run in remix
evm output
0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000602222222222222222333333333333333344444444444444445555555555555555444444444444444455555555555555556666666666666666777777777777777788888888888888889999999999999999ccccccccccccccccdddddddddddddddd
Metadata
Metadata
Assignees
Labels
No labels