From f36e021ffc4aca746730b88195d492e3c73ceb62 Mon Sep 17 00:00:00 2001
From: chriseth <chris@ethereum.org>
Date: Thu, 22 Jun 2017 17:39:29 +0200
Subject: [PATCH] Test for passing empty string literal as function argument.

---
 test/libsolidity/SolidityEndToEndTest.cpp | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp
index ba507e0cb..823a8eda0 100644
--- a/test/libsolidity/SolidityEndToEndTest.cpp
+++ b/test/libsolidity/SolidityEndToEndTest.cpp
@@ -9469,6 +9469,29 @@ BOOST_AUTO_TEST_CASE(revert)
 	BOOST_CHECK(callContractFunction("a()") == encodeArgs(u256(42)));
 }
 
+BOOST_AUTO_TEST_CASE(literal_empty_string)
+{
+	char const* sourceCode = R"(
+		contract C {
+			bytes32 public x;
+			uint public a;
+			function f(bytes32 _x, uint _a) {
+				x = _x;
+				a = _a;
+			}
+			function g() {
+				this.f("", 2);
+			}
+		}
+	)";
+	compileAndRun(sourceCode, 0, "C");
+	BOOST_CHECK(callContractFunction("x()") == encodeArgs(u256(0)));
+	BOOST_CHECK(callContractFunction("a()") == encodeArgs(u256(0)));
+	BOOST_CHECK(callContractFunction("g()") == encodeArgs());
+	BOOST_CHECK(callContractFunction("x()") == encodeArgs(u256(0)));
+	BOOST_CHECK(callContractFunction("a()") == encodeArgs(u256(2)));
+}
+
 BOOST_AUTO_TEST_CASE(scientific_notation)
 {
 	char const* sourceCode = R"(