mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Fix wrong cleanup when copying from calldata to memory
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
This commit is contained in:
committed by
Daniel Kirchner
co-authored by
Kamil Śliwak
parent
5b0f4a724a
commit
22c7cd22b9
@@ -17,25 +17,25 @@ contract c {
|
||||
// ----
|
||||
// f(uint256): 0 -> 0x20, 0x00
|
||||
// f(uint256): 31 -> 0x20, 0x1f, 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e00
|
||||
// gas irOptimized: 108395
|
||||
// gas legacy: 124322
|
||||
// gas legacyOptimized: 119141
|
||||
// gas irOptimized: 109413
|
||||
// gas legacy: 124296
|
||||
// gas legacyOptimized: 119119
|
||||
// f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671
|
||||
// gas irOptimized: 117480
|
||||
// gas legacy: 135259
|
||||
// gas legacyOptimized: 130089
|
||||
// gas irOptimized: 118565
|
||||
// gas legacy: 135251
|
||||
// gas legacyOptimized: 130091
|
||||
// f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000
|
||||
// gas irOptimized: 124117
|
||||
// gas legacy: 142861
|
||||
// gas legacyOptimized: 137030
|
||||
// gas irOptimized: 125184
|
||||
// gas legacy: 142835
|
||||
// gas legacyOptimized: 137008
|
||||
// f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992
|
||||
// gas irOptimized: 126467
|
||||
// gas legacy: 160901
|
||||
// gas legacyOptimized: 150960
|
||||
// gas irOptimized: 128584
|
||||
// gas legacy: 160875
|
||||
// gas legacyOptimized: 150938
|
||||
// f(uint256): 12 -> 0x20, 0x0c, 0x0102030405060708090a0b0000000000000000000000000000000000000000
|
||||
// gas legacy: 59345
|
||||
// gas legacyOptimized: 57279
|
||||
// f(uint256): 129 -> 0x20, 0x81, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f, 29063324697304692433803953038474361308315562010425523193971352996434451193439, 0x606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f, -57896044618658097711785492504343953926634992332820282019728792003956564819968
|
||||
// gas irOptimized: 353326
|
||||
// gas legacy: 421700
|
||||
// gas legacyOptimized: 402999
|
||||
// gas irOptimized: 357699
|
||||
// gas legacy: 421674
|
||||
// gas legacyOptimized: 402977
|
||||
|
||||
+6
-6
@@ -35,12 +35,12 @@ contract C {
|
||||
}
|
||||
// ----
|
||||
// f() -> 0x40, 0x80, 6, 0x6162636465660000000000000000000000000000000000000000000000000000, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000
|
||||
// gas irOptimized: 179880
|
||||
// gas legacy: 181099
|
||||
// gas legacyOptimized: 180073
|
||||
// gas irOptimized: 179766
|
||||
// gas legacy: 181047
|
||||
// gas legacyOptimized: 180029
|
||||
// g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000
|
||||
// gas irOptimized: 107211
|
||||
// gas legacy: 110253
|
||||
// gas legacyOptimized: 107397
|
||||
// gas irOptimized: 107097
|
||||
// gas legacy: 110201
|
||||
// gas legacyOptimized: 107353
|
||||
// h() -> 0x40, 0x60, 0x00, 0x00
|
||||
// storageEmpty -> 1
|
||||
|
||||
@@ -46,11 +46,11 @@ contract C {
|
||||
}
|
||||
// ----
|
||||
// test() -> 0x20, 0x14, "[a called][b called]"
|
||||
// gas irOptimized: 116724
|
||||
// gas legacy: 119056
|
||||
// gas legacyOptimized: 117043
|
||||
// gas irOptimized: 116688
|
||||
// gas legacy: 119030
|
||||
// gas legacyOptimized: 117021
|
||||
// test2() -> 0x20, 0x14, "[b called][a called]"
|
||||
// test3() -> 0x20, 0x14, "[b called][a called]"
|
||||
// gas irOptimized: 103304
|
||||
// gas legacy: 102840
|
||||
// gas legacyOptimized: 101728
|
||||
// gas irOptimized: 103268
|
||||
// gas legacy: 102814
|
||||
// gas legacyOptimized: 101706
|
||||
|
||||
@@ -11,6 +11,6 @@ contract C {
|
||||
}
|
||||
// ----
|
||||
// f() -> 0x20, 0x02, 0x40, 0x80, 3, 0x6162630000000000000000000000000000000000000000000000000000000000, 0x99, 44048183304486788312148433451363384677562265908331949128489393215789685032262, 32241931068525137014058842823026578386641954854143559838526554899205067598957, 49951309422467613961193228765530489307475214998374779756599339590522149884499, 0x54555658595a6162636465666768696a6b6c6d6e6f707172737475767778797a, 0x4142434445464748494a4b4c4d4e4f5051525354555658595a00000000000000
|
||||
// gas irOptimized: 202952
|
||||
// gas legacy: 204912
|
||||
// gas legacyOptimized: 203437
|
||||
// gas irOptimized: 202808
|
||||
// gas legacy: 204860
|
||||
// gas legacyOptimized: 203385
|
||||
|
||||
@@ -10,6 +10,6 @@ contract c {
|
||||
|
||||
// ----
|
||||
// test() -> 0x20, 29, 0x0303030303030303030303030303030303030303030303030303030303000000
|
||||
// gas irOptimized: 109341
|
||||
// gas legacy: 126728
|
||||
// gas legacyOptimized: 123444
|
||||
// gas irOptimized: 109310
|
||||
// gas legacy: 126702
|
||||
// gas legacyOptimized: 123422
|
||||
|
||||
@@ -10,6 +10,6 @@ contract c {
|
||||
|
||||
// ----
|
||||
// test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000
|
||||
// gas irOptimized: 108146
|
||||
// gas legacy: 125610
|
||||
// gas legacyOptimized: 122582
|
||||
// gas irOptimized: 108115
|
||||
// gas legacy: 125584
|
||||
// gas legacyOptimized: 122560
|
||||
|
||||
Reference in New Issue
Block a user