aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-09-16 10:46:29 +0800
committerGitHub <noreply@github.com>2017-09-16 10:46:29 +0800
commita0d171722a211720773aae0ded8a80991d44ba9d (patch)
treeae1376cd7d128573edb235f92191dd30118d07bf /test/libsolidity
parent7dd372ce5c9ea1cacf2c70a16f0285bb74314db8 (diff)
parent80ce3ca66f063d8d87c2393e689f92d8608b4e0a (diff)
downloaddexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar
dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.gz
dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.bz2
dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.lz
dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.xz
dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.zst
dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.zip
Merge pull request #2823 from ethereum/iuliaCompressor
Combine all ABI functions into a single assembly.
Diffstat (limited to 'test/libsolidity')
-rw-r--r--test/libsolidity/ABIEncoderTests.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/libsolidity/ABIEncoderTests.cpp b/test/libsolidity/ABIEncoderTests.cpp
index 297c4ef0..4ddf17ce 100644
--- a/test/libsolidity/ABIEncoderTests.cpp
+++ b/test/libsolidity/ABIEncoderTests.cpp
@@ -398,6 +398,34 @@ BOOST_AUTO_TEST_CASE(calldata)
)
}
+BOOST_AUTO_TEST_CASE(function_name_collision)
+{
+ // This tests a collision between a function name used by inline assembly
+ // and by the ABI encoder
+ string sourceCode = R"(
+ contract C {
+ function f(uint x) returns (uint) {
+ assembly {
+ function abi_encode_t_uint256_to_t_uint256() {
+ mstore(0, 7)
+ return(0, 0x20)
+ }
+ switch x
+ case 0 { abi_encode_t_uint256_to_t_uint256() }
+ }
+ return 1;
+ }
+ }
+ )";
+ BOTH_ENCODERS(
+ compileAndRun(sourceCode);
+ BOOST_CHECK(callContractFunction("f(uint256)", encodeArgs(0)) == encodeArgs(7));
+ BOOST_CHECK(callContractFunction("f(uint256)", encodeArgs(1)) == encodeArgs(1));
+ )
+}
+
+
+
BOOST_AUTO_TEST_SUITE_END()
}