aboutsummaryrefslogtreecommitdiffstats
path: root/test/libyul/yulOptimizerTests/ssaAndBack/ssaReverse.yul
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2019-01-22 20:49:41 +0800
committerGitHub <noreply@github.com>2019-01-22 20:49:41 +0800
commit10d17f245839f208ec5085309022a32cd2502f55 (patch)
treeb2c9f68980d0d418cd6f511e9f3f3f71369abe25 /test/libyul/yulOptimizerTests/ssaAndBack/ssaReverse.yul
parent1df8f40cd2fd7b47698d847907b8ca7b47eb488d (diff)
parent0ecafe032a84cb6960545dd7f18733430c1f782d (diff)
downloaddexon-solidity-10d17f245839f208ec5085309022a32cd2502f55.tar.gz
dexon-solidity-10d17f245839f208ec5085309022a32cd2502f55.tar.zst
dexon-solidity-10d17f245839f208ec5085309022a32cd2502f55.zip
Merge pull request #5836 from ethereum/develop
Merge develop into release for 0.5.3.
Diffstat (limited to 'test/libyul/yulOptimizerTests/ssaAndBack/ssaReverse.yul')
-rw-r--r--test/libyul/yulOptimizerTests/ssaAndBack/ssaReverse.yul45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/libyul/yulOptimizerTests/ssaAndBack/ssaReverse.yul b/test/libyul/yulOptimizerTests/ssaAndBack/ssaReverse.yul
new file mode 100644
index 00000000..d2ba6471
--- /dev/null
+++ b/test/libyul/yulOptimizerTests/ssaAndBack/ssaReverse.yul
@@ -0,0 +1,45 @@
+{
+ function abi_decode_t_bytes_calldata_ptr(offset_12, end_13) -> arrayPos_14, length_15
+ {
+ if iszero(slt(add(offset_12, 0x1f), end_13))
+ {
+ revert(0, 0)
+ }
+ length_15 := calldataload(offset_12)
+ if gt(length_15, 0xffffffffffffffff)
+ {
+ revert(0, 0)
+ }
+ arrayPos_14 := add(offset_12, 0x20)
+ if gt(add(add(offset_12, length_15), 0x20), end_13)
+ {
+ revert(0, 0)
+ }
+ }
+ // prevent removal of the function
+ let a,b := abi_decode_t_bytes_calldata_ptr(mload(0),mload(1))
+ mstore(a,b)
+}
+// ----
+// ssaAndBack
+// {
+// function abi_decode_t_bytes_calldata_ptr(offset_12, end_13) -> arrayPos_14, length_15
+// {
+// if iszero(slt(add(offset_12, 0x1f), end_13))
+// {
+// revert(arrayPos_14, arrayPos_14)
+// }
+// length_15 := calldataload(offset_12)
+// if gt(length_15, 0xffffffffffffffff)
+// {
+// revert(arrayPos_14, arrayPos_14)
+// }
+// arrayPos_14 := add(offset_12, 0x20)
+// if gt(add(add(offset_12, length_15), 0x20), end_13)
+// {
+// revert(0, 0)
+// }
+// }
+// let a, b := abi_decode_t_bytes_calldata_ptr(mload(0), mload(1))
+// mstore(a, b)
+// }