aboutsummaryrefslogtreecommitdiffstats
path: root/test/libyul/yulOptimizerTests/expressionSplitter
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-12-21 00:39:52 +0800
committerchriseth <chris@ethereum.org>2019-01-08 00:23:38 +0800
commitace601b8f6ebe8097b9c587c96494058d51b3e8f (patch)
tree9e4827959c1b977b9f986ab72d79b8a3573fe854 /test/libyul/yulOptimizerTests/expressionSplitter
parent5b73c2ae3bce09442572b5401a7bcccc2ffe7590 (diff)
downloaddexon-solidity-ace601b8f6ebe8097b9c587c96494058d51b3e8f.tar
dexon-solidity-ace601b8f6ebe8097b9c587c96494058d51b3e8f.tar.gz
dexon-solidity-ace601b8f6ebe8097b9c587c96494058d51b3e8f.tar.bz2
dexon-solidity-ace601b8f6ebe8097b9c587c96494058d51b3e8f.tar.lz
dexon-solidity-ace601b8f6ebe8097b9c587c96494058d51b3e8f.tar.xz
dexon-solidity-ace601b8f6ebe8097b9c587c96494058d51b3e8f.tar.zst
dexon-solidity-ace601b8f6ebe8097b9c587c96494058d51b3e8f.zip
Tests.
Diffstat (limited to 'test/libyul/yulOptimizerTests/expressionSplitter')
-rw-r--r--test/libyul/yulOptimizerTests/expressionSplitter/object_access.yul21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/libyul/yulOptimizerTests/expressionSplitter/object_access.yul b/test/libyul/yulOptimizerTests/expressionSplitter/object_access.yul
new file mode 100644
index 00000000..2689ab6f
--- /dev/null
+++ b/test/libyul/yulOptimizerTests/expressionSplitter/object_access.yul
@@ -0,0 +1,21 @@
+{
+ // We should never split arguments to ``dataoffset``
+ // or ``datasize`` because they need to be literals
+ let x := dataoffset("abc")
+ let y := datasize("abc")
+ // datacopy is fine, though
+ datacopy(mload(0), mload(1), mload(2))
+}
+// ----
+// expressionSplitter
+// {
+// let x := dataoffset("abc")
+// let y := datasize("abc")
+// let _1 := 2
+// let _2 := mload(_1)
+// let _3 := 1
+// let _4 := mload(_3)
+// let _5 := 0
+// let _6 := mload(_5)
+// datacopy(_6, _4, _2)
+// }