aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/contracts.rst1
-rw-r--r--docs/utils/SolidityLexer.py2
-rw-r--r--libsolidity/analysis/DocStringAnalyser.cpp12
-rw-r--r--libsolidity/analysis/DocStringAnalyser.h2
-rw-r--r--libsolidity/interface/ErrorReporter.cpp19
-rw-r--r--libsolidity/interface/ErrorReporter.h4
-rw-r--r--libsolidity/interface/Exceptions.cpp3
-rw-r--r--libsolidity/interface/Exceptions.h1
-rwxr-xr-xscripts/create_source_tarball.sh2
-rwxr-xr-xscripts/docker_deploy.sh2
-rwxr-xr-xscripts/get_version.sh31
-rwxr-xr-xscripts/release_ppa.sh8
-rwxr-xr-xscripts/test_emscripten.sh15
-rw-r--r--solc/jsonCompiler.cpp4
-rw-r--r--test/libsolidity/SolidityEndToEndTest.cpp44
15 files changed, 85 insertions, 65 deletions
diff --git a/docs/contracts.rst b/docs/contracts.rst
index 356fa90d..e9ea1b3b 100644
--- a/docs/contracts.rst
+++ b/docs/contracts.rst
@@ -244,6 +244,7 @@ In the following example, ``D``, can call ``c.getData()`` to retrieve the value
}
.. index:: ! getter;function, ! function;getter
+.. _getter_functions:
Getter Functions
================
diff --git a/docs/utils/SolidityLexer.py b/docs/utils/SolidityLexer.py
index 1dc99159..ef55c6a2 100644
--- a/docs/utils/SolidityLexer.py
+++ b/docs/utils/SolidityLexer.py
@@ -26,7 +26,7 @@ class SolidityLexer(RegexLexer):
(r'/\*.*?\*/', Comment.Multiline)
],
'natspec': [
- (r'@author|@dev|@notice|@return|@param|@why3|@title', Keyword),
+ (r'@author|@dev|@notice|@return|@param|@title', Keyword),
(r'.[^@*\n]*?', Comment.Special)
],
'docstringsingle': [
diff --git a/libsolidity/analysis/DocStringAnalyser.cpp b/libsolidity/analysis/DocStringAnalyser.cpp
index 6a8fa08e..9a846b31 100644
--- a/libsolidity/analysis/DocStringAnalyser.cpp
+++ b/libsolidity/analysis/DocStringAnalyser.cpp
@@ -40,7 +40,7 @@ bool DocStringAnalyser::analyseDocStrings(SourceUnit const& _sourceUnit)
bool DocStringAnalyser::visit(ContractDefinition const& _node)
{
- static const set<string> validTags = set<string>{"author", "title", "dev", "notice", "why3"};
+ static const set<string> validTags = set<string>{"author", "title", "dev", "notice"};
parseDocStrings(_node, _node.annotation(), validTags, "contracts");
return true;
@@ -66,16 +66,6 @@ bool DocStringAnalyser::visit(EventDefinition const& _node)
return true;
}
-bool DocStringAnalyser::visitNode(ASTNode const& _node)
-{
- if (auto node = dynamic_cast<Statement const*>(&_node))
- {
- static const set<string> validTags = {"why3"};
- parseDocStrings(*node, node->annotation(), validTags, "statements");
- }
- return true;
-}
-
void DocStringAnalyser::handleCallable(
CallableDeclaration const& _callable,
Documented const& _node,
diff --git a/libsolidity/analysis/DocStringAnalyser.h b/libsolidity/analysis/DocStringAnalyser.h
index e871cb60..158b4060 100644
--- a/libsolidity/analysis/DocStringAnalyser.h
+++ b/libsolidity/analysis/DocStringAnalyser.h
@@ -48,8 +48,6 @@ private:
virtual bool visit(ModifierDefinition const& _modifier) override;
virtual bool visit(EventDefinition const& _event) override;
- virtual bool visitNode(ASTNode const&) override;
-
void handleCallable(
CallableDeclaration const& _callable,
Documented const& _node,
diff --git a/libsolidity/interface/ErrorReporter.cpp b/libsolidity/interface/ErrorReporter.cpp
index 2cbb952c..6e2667a5 100644
--- a/libsolidity/interface/ErrorReporter.cpp
+++ b/libsolidity/interface/ErrorReporter.cpp
@@ -165,22 +165,3 @@ void ErrorReporter::docstringParsingError(string const& _description)
_description
);
}
-
-void ErrorReporter::why3TranslatorError(ASTNode const& _location, std::string const& _description)
-{
- error(
- Error::Type::Why3TranslatorError,
- _location.location(),
- _description
- );
-}
-
-void ErrorReporter::fatalWhy3TranslatorError(ASTNode const& _location, std::string const& _description)
-{
- fatalError(
- Error::Type::Why3TranslatorError,
- _location.location(),
- _description
- );
-}
-
diff --git a/libsolidity/interface/ErrorReporter.h b/libsolidity/interface/ErrorReporter.h
index 83324446..e5605d24 100644
--- a/libsolidity/interface/ErrorReporter.h
+++ b/libsolidity/interface/ErrorReporter.h
@@ -79,10 +79,6 @@ public:
void docstringParsingError(std::string const& _location);
- void why3TranslatorError(ASTNode const& _location, std::string const& _description);
-
- void fatalWhy3TranslatorError(ASTNode const& _location, std::string const& _description);
-
ErrorList const& errors() const;
void clear();
diff --git a/libsolidity/interface/Exceptions.cpp b/libsolidity/interface/Exceptions.cpp
index deee92aa..9f2a2d06 100644
--- a/libsolidity/interface/Exceptions.cpp
+++ b/libsolidity/interface/Exceptions.cpp
@@ -46,9 +46,6 @@ Error::Error(Type _type, SourceLocation const& _location, string const& _descrip
case Type::TypeError:
m_typeName = "TypeError";
break;
- case Type::Why3TranslatorError:
- m_typeName = "Why3TranslatorError";
- break;
case Type::Warning:
m_typeName = "Warning";
break;
diff --git a/libsolidity/interface/Exceptions.h b/libsolidity/interface/Exceptions.h
index 5fdb8f11..09301b10 100644
--- a/libsolidity/interface/Exceptions.h
+++ b/libsolidity/interface/Exceptions.h
@@ -60,7 +60,6 @@ public:
ParserError,
TypeError,
SyntaxError,
- Why3TranslatorError,
Warning
};
diff --git a/scripts/create_source_tarball.sh b/scripts/create_source_tarball.sh
index 9ca72c31..7339e106 100755
--- a/scripts/create_source_tarball.sh
+++ b/scripts/create_source_tarball.sh
@@ -6,7 +6,7 @@ set -e
REPO_ROOT="$(dirname "$0")"/..
(
cd "$REPO_ROOT"
- version=$(grep -oP "PROJECT_VERSION \"?\K[0-9.]+(?=\")"? CMakeLists.txt)
+ version=$(scripts/get_version.sh)
commithash=$(git rev-parse --short=8 HEAD)
commitdate=$(git show --format=%ci HEAD | head -n 1 | cut - -b1-10 | sed -e 's/-0?/./' | sed -e 's/-0?/./')
diff --git a/scripts/docker_deploy.sh b/scripts/docker_deploy.sh
index 0abde840..00705725 100755
--- a/scripts/docker_deploy.sh
+++ b/scripts/docker_deploy.sh
@@ -3,7 +3,7 @@
set -e
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD";
-version=$(grep -oP "PROJECT_VERSION \"?\K[0-9.]+(?=\")"? $(dirname "$0")/../CMakeLists.txt)
+version=$($(dirname "$0")/get_version.sh)
if [ "$TRAVIS_BRANCH" = "develop" ]
then
docker tag ethereum/solc:build ethereum/solc:nightly;
diff --git a/scripts/get_version.sh b/scripts/get_version.sh
new file mode 100755
index 00000000..3df2b4c4
--- /dev/null
+++ b/scripts/get_version.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+#------------------------------------------------------------------------------
+# Bash script to execute the Solidity tests.
+#
+# The documentation for solidity is hosted at:
+#
+# https://solidity.readthedocs.org
+#
+# ------------------------------------------------------------------------------
+# This file is part of solidity.
+#
+# solidity is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# solidity is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with solidity. If not, see <http://www.gnu.org/licenses/>
+#
+# (c) 2017 solidity contributors.
+#------------------------------------------------------------------------------
+
+set -e
+
+grep -oP "PROJECT_VERSION \"?\K[0-9.]+(?=\")"? $(dirname "$0")/../CMakeLists.txt
diff --git a/scripts/release_ppa.sh b/scripts/release_ppa.sh
index 5e01347b..7c9abecb 100755
--- a/scripts/release_ppa.sh
+++ b/scripts/release_ppa.sh
@@ -55,10 +55,10 @@ wget -O ./solc/deps/downloads/jsoncpp-1.7.7.tar.gz https://github.com/open-sourc
# Determine version
cd solc
-version=`grep -oP "PROJECT_VERSION \"?\K[0-9.]+(?=\")"? CMakeLists.txt`
-commithash=`git rev-parse --short=8 HEAD`
-committimestamp=`git show --format=%ci HEAD | head -n 1`
-commitdate=`git show --format=%ci HEAD | head -n 1 | cut - -b1-10 | sed -e 's/-0?/./' | sed -e 's/-0?/./'`
+version=$($(dirname "$0")/get_version.sh)
+commithash=$(git rev-parse --short=8 HEAD)
+committimestamp=$(git show --format=%ci HEAD | head -n 1)
+commitdate=$(git show --format=%ci HEAD | head -n 1 | cut - -b1-10 | sed -e 's/-0?/./' | sed -e 's/-0?/./')
echo "$commithash" > commit_hash.txt
if [ $branch = develop ]
diff --git a/scripts/test_emscripten.sh b/scripts/test_emscripten.sh
index 3bb16aa4..a2dbe61c 100755
--- a/scripts/test_emscripten.sh
+++ b/scripts/test_emscripten.sh
@@ -45,20 +45,7 @@ rm -f soljson.js
cp ../solc/soljson.js soljson.js
# Update version (needed for some tests)
-echo "Creating version.c"
-rm -f version version.c
-cat <<EOF > version.c
-#include <stdio.h>
-#include "../include/solidity/BuildInfo.h"
-int main(int argc, char **argv) {
- printf(ETH_PROJECT_VERSION);
- return 0;
-}
-EOF
-echo "Compiling version.c"
-gcc -o version version.c
-echo "Running version"
-VERSION=`./version`
+VERSION=$(../../scripts/get_version.sh)
echo "Updating package.json to version $VERSION"
npm version $VERSION
diff --git a/solc/jsonCompiler.cpp b/solc/jsonCompiler.cpp
index 1d31ea30..adf991d6 100644
--- a/solc/jsonCompiler.cpp
+++ b/solc/jsonCompiler.cpp
@@ -164,10 +164,6 @@ string compile(StringMap const& _sources, bool _optimize, CStyleReadFileCallback
// "srcmapRuntime" = "0:1:2",
// "assembly" = {}
// }
- // },
- // "formal": {
- // "errors": [ "Error 1" ],
- // "why3": "why3 source"
// }
// }
Json::Value output = Json::objectValue;
diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp
index da725581..a6c01283 100644
--- a/test/libsolidity/SolidityEndToEndTest.cpp
+++ b/test/libsolidity/SolidityEndToEndTest.cpp
@@ -3702,6 +3702,50 @@ BOOST_AUTO_TEST_CASE(enum_explicit_overflow)
BOOST_CHECK(callContractFunction("getChoiceExp(uint256)", 0) == encodeArgs(0));
}
+BOOST_AUTO_TEST_CASE(storing_invalid_boolean)
+{
+ char const* sourceCode = R"(
+ contract C {
+ event Ev(bool);
+ bool public perm;
+ function set() returns(uint) {
+ bool tmp;
+ assembly {
+ tmp := 5
+ }
+ perm = tmp;
+ return 1;
+ }
+ function ret() returns(bool) {
+ bool tmp;
+ assembly {
+ tmp := 5
+ }
+ return tmp;
+ }
+ function ev() returns(uint) {
+ bool tmp;
+ assembly {
+ tmp := 5
+ }
+ Ev(tmp);
+ return 1;
+ }
+ }
+ )";
+ compileAndRun(sourceCode);
+ BOOST_CHECK(callContractFunction("set()") == encodeArgs(1));
+ BOOST_CHECK(callContractFunction("perm()") == encodeArgs(1));
+ BOOST_CHECK(callContractFunction("ret()") == encodeArgs(1));
+ BOOST_CHECK(callContractFunction("ev()") == encodeArgs(1));
+ BOOST_REQUIRE_EQUAL(m_logs.size(), 1);
+ BOOST_CHECK_EQUAL(m_logs[0].address, m_contractAddress);
+ BOOST_CHECK(m_logs[0].data == encodeArgs(1));
+ BOOST_REQUIRE_EQUAL(m_logs[0].topics.size(), 1);
+ BOOST_CHECK_EQUAL(m_logs[0].topics[0], dev::keccak256(string("Ev(bool)")));
+}
+
+
BOOST_AUTO_TEST_CASE(using_contract_enums_with_explicit_contract_name)
{
char const* sourceCode = R"(