Checks for overflow/underflow after add/sub operations.

This commit is contained in:
Matheus Aguiar
2022-06-23 14:41:12 -03:00
parent 3ed9a38abc
commit 4fd5c11af7
49 changed files with 450 additions and 434 deletions
@@ -19,6 +19,6 @@ contract c {
// compileToEwasm: also
// ----
// test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 124757
// gas legacy: 186184
// gas legacyOptimized: 165682
// gas irOptimized: 124817
// gas legacy: 186028
// gas legacyOptimized: 165692
@@ -38,10 +38,10 @@ contract c {
// compileViaYul: true
// ----
// test1(uint256[][]): 0x20, 2, 0x40, 0x40, 2, 23, 42 -> 2, 65
// gas irOptimized: 180766
// gas irOptimized: 180769
// test2(uint256[][2]): 0x20, 0x40, 0x40, 2, 23, 42 -> 2, 65
// gas irOptimized: 157564
// gas irOptimized: 157567
// test3(uint256[2][]): 0x20, 2, 23, 42, 23, 42 -> 2, 65
// gas irOptimized: 134630
// gas irOptimized: 134633
// test4(uint256[2][2]): 23, 42, 23, 42 -> 65
// gas irOptimized: 111268
// gas irOptimized: 111271
@@ -38,12 +38,12 @@ contract Test {
}
// ----
// test() -> 24
// gas irOptimized: 226694
// gas legacy: 227133
// gas legacyOptimized: 226547
// gas irOptimized: 226700
// gas legacy: 227121
// gas legacyOptimized: 226557
// test1() -> 3
// test2() -> 6
// test3() -> 24
// gas irOptimized: 133254
// gas legacy: 134295
// gas legacyOptimized: 133383
// gas irOptimized: 133260
// gas legacy: 134283
// gas legacyOptimized: 133393
@@ -14,9 +14,9 @@ contract c {
// ----
// storageEmpty -> 1
// fill() ->
// gas irOptimized: 519616
// gas legacy: 521710
// gas legacyOptimized: 516922
// gas irOptimized: 519490
// gas legacy: 521584
// gas legacyOptimized: 517027
// storageEmpty -> 0
// halfClear() ->
// storageEmpty -> 0
@@ -12,9 +12,9 @@ contract c {
// ----
// storageEmpty -> 1
// fill() ->
// gas irOptimized: 465440
// gas legacy: 471400
// gas legacyOptimized: 467400
// gas irOptimized: 465380
// gas legacy: 471280
// gas legacyOptimized: 467500
// storageEmpty -> 0
// clear() ->
// storageEmpty -> 1
@@ -23,7 +23,7 @@ contract c {
}
// ----
// test() -> 1, 2, 3
// gas irOptimized: 2280132
// gas irOptimized: 2280147
// gas legacy: 2273434
// gas legacyOptimized: 2261820
// gas legacyOptimized: 2261844
// storageEmpty -> 1
@@ -18,7 +18,7 @@ contract c {
}
// ----
// test() -> 38, 28, 18
// gas irOptimized: 186364
// gas irOptimized: 186370
// gas legacy: 189492
// gas legacyOptimized: 178294
// gas legacyOptimized: 178318
// storageEmpty -> 1
@@ -18,7 +18,7 @@ contract c {
}
// ----
// test() -> 20, 10
// gas irOptimized: 158009
// gas irOptimized: 158020
// gas legacy: 159279
// gas legacyOptimized: 152921
// gas legacyOptimized: 152937
// storageEmpty -> 1
@@ -16,7 +16,7 @@ contract c {
}
// ----
// test() -> true
// gas irOptimized: 180539
// gas legacy: 228685
// gas legacyOptimized: 209662
// gas irOptimized: 176111
// gas legacy: 224093
// gas legacyOptimized: 205152
// storageEmpty -> 1
@@ -15,6 +15,6 @@ contract c {
}
// ----
// test() -> 0
// gas irOptimized: 173650
// gas irOptimized: 174126
// gas legacy: 216790
// gas legacyOptimized: 203886
// gas legacyOptimized: 204003