aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorGav Wood <g@ethdev.com>2015-04-28 18:39:03 +0800
committerGav Wood <g@ethdev.com>2015-04-28 18:39:03 +0800
commit717f2559696380c51d39cbf0105785c85ce3f3cf (patch)
treea60d8df6b73ff84cf47fa7292f32d9326d018b95 /libsolidity
parente2c4831613f8c77ae4491e31ceea7636e5580222 (diff)
parent0e5331f62c1a5384b9cff20c5499c89c12b82c5b (diff)
downloaddexon-solidity-717f2559696380c51d39cbf0105785c85ce3f3cf.tar.gz
dexon-solidity-717f2559696380c51d39cbf0105785c85ce3f3cf.tar.zst
dexon-solidity-717f2559696380c51d39cbf0105785c85ce3f3cf.zip
Merge pull request #1761 from chriseth/sol_fix_deleteBytes
Fix for deleting byte array elements.
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/SolidityEndToEndTest.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/libsolidity/SolidityEndToEndTest.cpp b/libsolidity/SolidityEndToEndTest.cpp
index 596f710b..24e5f7b4 100644
--- a/libsolidity/SolidityEndToEndTest.cpp
+++ b/libsolidity/SolidityEndToEndTest.cpp
@@ -3381,6 +3381,26 @@ BOOST_AUTO_TEST_CASE(bytes_index_access)
BOOST_CHECK(callContractFunction("storageWrite()") == encodeArgs(0x193));
}
+BOOST_AUTO_TEST_CASE(bytes_delete_element)
+{
+ char const* sourceCode = R"(
+ contract c {
+ bytes data;
+ function test1() external returns (bool) {
+ data.length = 100;
+ for (uint i = 0; i < data.length; i++)
+ data[i] = byte(i);
+ delete data[94];
+ delete data[96];
+ delete data[98];
+ return data[94] == 0 && data[95] == 95 && data[96] == 0 && data[97] == 97;
+ }
+ }
+ )";
+ compileAndRun(sourceCode);
+ BOOST_CHECK(callContractFunction("test1()") == encodeArgs(true));
+}
+
BOOST_AUTO_TEST_CASE(array_copy_calldata_storage)
{
char const* sourceCode = R"(