diff options
author | Leo Arias <yo@elopio.net> | 2018-09-16 13:25:35 +0800 |
---|---|---|
committer | Leo Arias <yo@elopio.net> | 2018-09-16 14:38:08 +0800 |
commit | aae385031f0f3d2d4281f1905616e59450e7c3ae (patch) | |
tree | 6be385b2be97db48035908f9a9c9a0349b08ca46 /test | |
parent | 5f4a2d2cad56dee3f7f350d65d24b98d1f4b2b07 (diff) | |
download | dexon-solidity-aae385031f0f3d2d4281f1905616e59450e7c3ae.tar dexon-solidity-aae385031f0f3d2d4281f1905616e59450e7c3ae.tar.gz dexon-solidity-aae385031f0f3d2d4281f1905616e59450e7c3ae.tar.bz2 dexon-solidity-aae385031f0f3d2d4281f1905616e59450e7c3ae.tar.lz dexon-solidity-aae385031f0f3d2d4281f1905616e59450e7c3ae.tar.xz dexon-solidity-aae385031f0f3d2d4281f1905616e59450e7c3ae.tar.zst dexon-solidity-aae385031f0f3d2d4281f1905616e59450e7c3ae.zip |
Add a missing tests for yul inliner optimization
When the statement has two return values, the function is not inlinable.
When the function has one statement but it is not an assignment to the
return variable, the function is not inlinable.
l
Diffstat (limited to 'test')
-rw-r--r-- | test/libjulia/Inliner.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/test/libjulia/Inliner.cpp b/test/libjulia/Inliner.cpp index 2f5b7cff..43a7d757 100644 --- a/test/libjulia/Inliner.cpp +++ b/test/libjulia/Inliner.cpp @@ -116,6 +116,9 @@ BOOST_AUTO_TEST_CASE(negative) BOOST_CHECK_EQUAL(inlinableFunctions("{ function f() -> x:u256 { x := f() } }"), ""); BOOST_CHECK_EQUAL(inlinableFunctions("{ function f() -> x:u256 { x := x } }"), ""); BOOST_CHECK_EQUAL(inlinableFunctions("{ function f() -> x:u256, y:u256 { x := 2:u256 } }"), ""); + BOOST_CHECK_EQUAL(inlinableFunctions( + "{ function g() -> x:u256, y:u256 {} function f(y:u256) -> x:u256 { x,y := g() } }"), ""); + BOOST_CHECK_EQUAL(inlinableFunctions("{ function f(y:u256) -> x:u256 { y := 2:u256 } }"), ""); } |