From b698618d0313ae3cbd20a476dd2ef5502f4298f2 Mon Sep 17 00:00:00 2001 From: hrkrshnn Date: Tue, 22 Dec 2020 12:15:41 +0100 Subject: [PATCH] Improved tests --- .../loadResolver/experimental_smt.yul | 24 +++++++++++++++++++ ...y_with_different_kinds_of_invalidation.yul | 2 +- .../loadResolver/staticcall.yul | 5 ++-- 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 test/libyul/yulOptimizerTests/loadResolver/experimental_smt.yul diff --git a/test/libyul/yulOptimizerTests/loadResolver/experimental_smt.yul b/test/libyul/yulOptimizerTests/loadResolver/experimental_smt.yul new file mode 100644 index 000000000..e9330a3af --- /dev/null +++ b/test/libyul/yulOptimizerTests/loadResolver/experimental_smt.yul @@ -0,0 +1,24 @@ +{ + mstore(64, 128) + if callvalue() { revert(0, 0) } + let _1 := 0 + // Does not invalidate location 64 + calldatacopy(128, _1, calldatasize()) + let z := mload(64) + sstore(z, 1) + } +// ---- +// step: loadResolver +// +// { +// let _2 := 128 +// mstore(64, _2) +// if callvalue() +// { +// let _5 := 0 +// revert(_5, _5) +// } +// let _1 := 0 +// calldatacopy(_2, _1, calldatasize()) +// sstore(_2, 1) +// } diff --git a/test/libyul/yulOptimizerTests/loadResolver/memory_with_different_kinds_of_invalidation.yul b/test/libyul/yulOptimizerTests/loadResolver/memory_with_different_kinds_of_invalidation.yul index 77fc5aef0..4f261454d 100644 --- a/test/libyul/yulOptimizerTests/loadResolver/memory_with_different_kinds_of_invalidation.yul +++ b/test/libyul/yulOptimizerTests/loadResolver/memory_with_different_kinds_of_invalidation.yul @@ -25,7 +25,7 @@ // let _5 := 0 // sstore(_5, _4) // pop(call(_5, _5, _5, _5, _5, _5, _5)) -// sstore(_5, mload(_2)) +// sstore(_5, _1) // let _17 := 10 // mstore(_2, _17) // mstore8(calldataload(_5), 4) diff --git a/test/libyul/yulOptimizerTests/loadResolver/staticcall.yul b/test/libyul/yulOptimizerTests/loadResolver/staticcall.yul index b24ab0170..772cc500d 100644 --- a/test/libyul/yulOptimizerTests/loadResolver/staticcall.yul +++ b/test/libyul/yulOptimizerTests/loadResolver/staticcall.yul @@ -19,10 +19,9 @@ // let b := 1 // sstore(a, b) // let _1 := 7 -// let _2 := 900 -// mstore(_2, _1) +// mstore(900, _1) // let _3 := 200 // pop(staticcall(10000, 10, a, _3, a, _3)) -// sstore(1, mload(_2)) +// sstore(1, _1) // mstore(a, b) // }