Commit Graph

6111 Commits

Author SHA1 Message Date
chriseth
7d0ecd9406
Merge pull request #10535 from ethereum/removeNumbers
Improve generated names.
2021-02-23 13:29:18 +01:00
Harikrishnan Mulackal
148e1150f2
Merge pull request #10992 from ethereum/detectAssignToFunction
Detect assignment to function in inline assembly.
2021-02-23 13:26:45 +01:00
chriseth
d586b7b57a
Merge pull request #10991 from ethereum/bareCallNoReturndatacopy
[Sol->Yul] Fix bare call wihout returndatacopy.
2021-02-23 13:24:50 +01:00
chriseth
c91cffa4ec Fix module member names for importing with renaming. 2021-02-23 13:15:32 +01:00
Kamil Śliwak
01f8005d04 Remove the last remains of --ast-json option 2021-02-23 12:39:19 +01:00
Bhargava Shastry
c9f1b55073
Merge pull request #10967 from ethereum/proto-mutator
Proto mutator: Add control flow to basic blocks
2021-02-23 12:03:52 +01:00
chriseth
9c7b1e9c3f Detect assignment to function in inline assembly. 2021-02-23 11:47:12 +01:00
Kamil Śliwak
54eb34d6fd Move call graphs from CompilerStack to ContractDefinitionAnnotation 2021-02-23 10:47:02 +01:00
Kamil Śliwak
6c28120f19 Move CallGraph structure to a separate module 2021-02-23 10:47:02 +01:00
Kamil Śliwak
051995a373 Test suite for FunctionCallGraph 2021-02-23 10:46:28 +01:00
chriseth
e9b3dd21d0 Fix bare call wihout returndatacopy. 2021-02-23 10:45:01 +01:00
chriseth
e75e3fc2e3
Merge pull request #10977 from ethereum/replace-throw-with-boost-macro
Replace raw throw with BOOST_THROW_EXCEPTION.
2021-02-22 16:18:13 +01:00
Bhargava Shastry
758d159d87 yul proto mutator: Add control flow to block statements. 2021-02-22 15:10:41 +01:00
Bhargava Shastry
1ddfc7463a Tests: Do not remove filename from boost filesystem path for corner
cases.

Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-02-22 10:32:41 +01:00
Harikrishnan Mulackal
6fd5ea01d1
Merge pull request #10971 from ethereum/onlyWarnAboutVariables
Only warn about variables being shadowed in inline assembly.
2021-02-19 16:17:02 +01:00
chriseth
78a097a012 Only warn about variables being shadowed in inline assembly. 2021-02-19 14:29:22 +01:00
Alexander Arlt
ae6710f4e7 test/libsolidity/util/ContractABIUtils.cpp: use std::bind. 2021-02-18 20:26:26 -05:00
Alexander Arlt
c44bb7e7ef Replace raw throw with BOOST_THROW_EXCEPTION. 2021-02-18 20:23:59 -05:00
Bhargava Shastry
91b7d60301 Optimiser fuzzer: Disable reasoning based simplifier runs. 2021-02-18 10:48:49 +01:00
hrkrshnn
f336a68009 Added syntax tests for constructors with function parameter 2021-02-17 17:12:02 +01:00
chriseth
612d8184d1 Update tests. 2021-02-16 15:50:48 +01:00
Alex Beregszaszi
346344dc7b Add missing test case for try/Catch 2021-02-16 12:33:55 +00:00
hrkrshnn
e24a23edcd Semantic test where constructor has a function as parameter 2021-02-15 14:16:28 +01:00
Djordje Mijovic
6e62cbf156 Run metadata tests for every metadata format. 2021-02-12 10:38:03 +01:00
Djordje Mijovic
b598948211 Run gas tests on NoMetadata format only. 2021-02-12 10:38:03 +01:00
hrkrshnn
a76ff8af1d Added tests for modifiers whose input is a function return value 2021-02-11 16:48:00 +01:00
chriseth
1716dcfb57
Merge pull request #10950 from ethereum/removeChecks
[SolYul] Remove (hopefully) unnecessary checks.
2021-02-11 14:10:05 +01:00
chriseth
45dc705683 Remove unnecessary checks. 2021-02-11 13:08:03 +01:00
chriseth
f4790971ae Add test. 2021-02-11 10:50:54 +01:00
Christian Parpart
9ca389d6cd MemberList.Member's last argument (declaration) made mandatory to avoid accidental missing out during construction. 2021-02-11 10:46:14 +01:00
chriseth
cbb197f7fa
Merge pull request #10833 from ethereum/ast-precise-name-locations
Extend the Solidity AST for precise locations of names
2021-02-11 10:44:58 +01:00
chriseth
70aa111dbf Update AST Json expectations. 2021-02-11 10:11:24 +01:00
Harikrishnan Mulackal
215233d5c8
Merge pull request #10945 from ethereum/constructor-modifier-bugfix
Fix IR bug about calling the wrong modifier during construction
2021-02-10 21:42:45 +01:00
hrkrshnn
2f30fdaa21 Fix IR bug about calling the wrong modifier during construction 2021-02-10 20:53:11 +01:00
Christian Parpart
32ba5f5ae7 libsolidity: Extend the AST for named AST nodes in order to get precise locations for names.
The actual SourceLocation on an ASTNode is representing the whole
ASTNode whereas in an LSP (for example) you are also interested in the
SourceLocation of a name of a construct (e.g. variable decarlation, function definition, ...).

This also properly encodes non-existend sources as `-1` in the JSON output (eliminating the use of `numeric_limits<size_t>::max()`).
2021-02-10 18:13:09 +01:00
Bhargava Shastry
febccdd96a Fuzzer: Refactor utility methods shared by proto fuzzers.
Co-authored-by: Leonardo <leo@ethereum.org>
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-02-10 11:43:57 +01:00
Daniel Kirchner
cb74a45fd6 Add inlining for old optimizer. 2021-02-09 19:08:58 +01:00
chriseth
e777cad78a
Merge pull request #10924 from ethereum/exportDocs
Export statement documentation.
2021-02-09 18:23:45 +01:00
chriseth
fcdb5e0b40 Export statement documentation. 2021-02-09 17:33:01 +01:00
chriseth
2e699e8865
Merge pull request #10923 from ethereum/improve-error-reporting
Improve error reporting
2021-02-09 17:18:44 +01:00
hrkrshnn
8167029dc1 Updating tests after improving Yul error reporting 2021-02-09 16:55:33 +01:00
Bhargava Shastry
75e7e1bee7 Consistent use of returns documentation tag. 2021-02-09 12:51:36 +01:00
Bhargava Shastry
896de75bcb Solidity fuzzer: Add test state. 2021-02-09 12:49:35 +01:00
chriseth
c82c2189d4
Merge pull request #10877 from ethereum/bash-arrays-for-arg-variables
Use Bash arrays for argument lists in shell scripts
2021-02-08 13:31:31 +01:00
Bhargava Shastry
8843890785
Merge pull request #10902 from ethereum/unified-solc-fuzzer
Unify solc fuzzers.
2021-02-08 13:25:52 +01:00
Djordje Mijovic
706f5d9874 [Sol2Yul] Fixing setLValue for calldata types. 2021-02-08 12:42:10 +01:00
Bhargava Shastry
7e343987fc Update solidity dictionary with TestReader syntax. 2021-02-08 11:16:11 +01:00
Bhargava Shastry
2f001bb91c Unify solc fuzzers. 2021-02-08 11:14:38 +01:00
Bhargava Shastry
c7ee2c1f39 Clang tidy fixes in protoToYul.cpp. 2021-02-07 23:27:11 +01:00
chriseth
d4ce896582
Merge pull request #10886 from ethereum/issue-10874
OverrideSpecifier: Check for null before dereferencing
2021-02-04 14:12:07 +01:00
Mathias Baumann
3a8a74cbc7 OverrideSpecifier: Check for null before dereferencing 2021-02-04 13:17:28 +01:00
Daniel Kirchner
5faefdea65
Merge pull request #10893 from ethereum/string2BytesSol2Yul
[Sol->Yul] Fixing string calldata to bytes calldata conversion.
2021-02-04 10:33:40 +01:00
Djordje Mijovic
530435439d [Sol->Yul] Fixing string calldata to bytes calldata conversion. 2021-02-04 09:30:19 +01:00
Bhargava Shastry
1a949e5323
Merge pull request #10856 from ethereum/add-import-stmt-generator
Solidity fuzzer: Add import stmt generator
2021-02-03 18:56:11 +01:00
Leonardo
7405dc5b7f
Merge pull request #10836 from ethereum/smt_fix_cex_inheritance
Fix inheritance bug in CHC cex
2021-02-03 18:49:25 +01:00
Bhargava Shastry
0a59bd825b Solidity fuzzer: Add simple import statements.
Co-authored-by: Leonardo <leo@ethereum.org>
2021-02-03 17:03:57 +01:00
Martin Blicha
4bcdac71df [SMTChecker] updates to the tests 2021-02-03 15:53:58 +01:00
chriseth
8a4e6acdac
Merge pull request #10680 from ethereum/more-features-in-prepare-report
More features in prepare_report.py
2021-02-03 11:51:51 +01:00
Leonardo
d393624384
Merge pull request #10585 from ethereum/fix-quoting-and-whitespace-in-shell-scripts
Fix quoting in shell scripts
2021-02-03 11:27:40 +01:00
Leonardo Alt
665ce27c18 Fix inheritance bug in CHC cex 2021-02-02 18:06:32 +01:00
Kamil Śliwak
67fe5fb145 prepare_report.py: Print some statistics about contracts and errors 2021-02-02 16:16:28 +01:00
Kamil Śliwak
17fe96c4d0 prepare_report.py: Don't use --metadata option with compiler versions that do not support it
- Before 0.4.3 the option was unavailable but ignored.
- Between 0.4.3 and 0.4.6 an attempt to use that option causes an error.
2021-02-02 16:16:14 +01:00
Kamil Śliwak
49aede680b prepare_report.py: Add --force-no-optimize-yul flag to work around a bug in solc 0.6.0/0.6.1 2021-02-02 16:16:14 +01:00
Kamil Śliwak
7e48aeb848 prepare_report.py: Make parsing more lax to handle output from older compiler versions 2021-02-02 16:16:14 +01:00
Kamil Śliwak
b06de9a2d5 prepare_report: Add command-line options for switching between SMT pragma stripping and only disabling the SMT checker 2021-02-02 16:16:14 +01:00
Kamil Śliwak
4a7d494d3c Use Bash arrays for variables containing multiple space-separated values 2021-02-02 15:45:24 +01:00
Kamil Śliwak
27754d3e3d Quote stuff properly 2021-02-01 17:14:38 +01:00
Kamil Śliwak
566d49a1d1 Correct whitespace inside conditions 2021-02-01 17:03:05 +01:00
Martin Blicha
a49950cdf3 [SMTChecker] Added transaction constraints also for contract deployment 2021-02-01 16:46:34 +01:00
chriseth
c7d1e1911e
Merge pull request #10369 from ethereum/ewasm-polyfill-address-balance
[ewasm] Polyfill: balance, address.
2021-02-01 16:19:23 +01:00
Leonardo Alt
545305a31f [SMTChecker] Fix super and virtual 2021-01-28 18:51:29 +01:00
chriseth
46bb81d7ae
Merge pull request #10676 from ethereum/cli-bytecode-comparison
Bytecode comparison via CLI interface
2021-01-28 11:58:30 +01:00
Bhargava Shastry
b5525668de
Merge pull request #10855 from ethereum/clang-tidy-fixes-solgen
Solidity fuzzer: Clang tidy suggested fixes in Solidity generator
2021-01-28 10:28:50 +01:00
Martin Blicha
deb90d84a6 [SMTChecker] added missing type constraints for Address 2021-01-27 20:39:24 +01:00
Bhargava Shastry
8e691293e4 ossfuzz: Clang tidy suggested fixes in Solidity generator 2021-01-27 14:55:49 +01:00
Kamil Śliwak
53f9a11440 prepare_report: Handle internal compiler errors in Standard JSON as errors, not missing bytecode 2021-01-26 23:30:38 +01:00
Kamil Śliwak
7f19339934 prepare_report.py: Add support for switching between CLI and Standard JSON compiler interfaces 2021-01-26 23:30:38 +01:00
Leonardo
38d1ec3efe
Merge pull request #10835 from blishko/smt-assembly
[SMTChecker] Basic support for inline assembly that over-approximates its effects.
2021-01-26 22:35:25 +01:00
Martin Blicha
484e67815a [SMTChecker] Basic support for inline assembly using over-approximating analysis 2021-01-26 16:20:50 +01:00
Bhargava Shastry
be733d5f61 Reorganized code for better readability. 2021-01-26 16:16:03 +01:00
Bhargava Shastry
f5e0faaa37 Add documentation and/or comments.
Co-authored-by: Leonardo <leo@ethereum.org>
2021-01-26 15:48:42 +01:00
Bhargava Shastry
d7e3d3f75f Add visitors for automatic test case generation. 2021-01-26 15:48:42 +01:00
chriseth
4697beeab2
Merge pull request #10769 from ethereum/allocationCleanup
Cleanup allocation.
2021-01-26 11:58:11 +01:00
Leonardo
22ad64a0fd
Merge pull request #10845 from ethereum/smt_z3_4-8-10
Update smtCheckerTests for z3 4.8.10
2021-01-26 11:37:03 +01:00
hrkrshnn
133bc72970 Tests and changelog for <address>.code.length shortcut 2021-01-26 11:08:39 +01:00
Leonardo Alt
40221a90c4 Update smtCheckerTests for z3 4.8.10 2021-01-26 10:18:52 +01:00
hrkrshnn
ec57c791ef Fix infinite loop when accessing circular constants from inline assembly. 2021-01-26 09:22:05 +01:00
chriseth
9fc3d88617
Merge pull request #10826 from ethereum/issue-10821
Fix missing error when accessing unintialized variables.
2021-01-26 09:16:13 +01:00
chriseth
1adaf929dd
Merge pull request #10707 from ityuhui/yh-721-replace-colon-in-cli
[CLI] Accept also equal sign "=" for ``--libraries``
2021-01-26 08:17:26 +01:00
Mathias Baumann
07a1d230cd Fix missing error when accessing unintialized variables. 2021-01-25 14:44:15 +01:00
chriseth
ccdf57c9b1
Merge pull request #10700 from ethereum/whiskers_check_template_contains_tag
[whiskers] Add check that template contain tags.
2021-01-25 14:17:05 +01:00
Kamil Śliwak
4ad0b4338a Fix the 'intheritance' typo in the name of the of the subdirectories in semanticTests/ 2021-01-25 11:17:06 +01:00
Hui Yu
c669ee251a [CLI] Allow "=" as separator between library name and address in --libraries commandline option. 2021-01-25 16:14:39 +08:00
Kamil Śliwak
8a8442377d
Merge pull request #10832 from ethereum/cmdline-tests-more-robust-interactive-mode
More robust interactive mode in command-line tests
2021-01-22 15:34:40 +01:00
Kamil Śliwak
aae271e399 Add a script for running the Python test suites and include it in scripts/tests.sh 2021-01-22 13:37:40 +01:00
Kamil Śliwak
151df00bb0 Read/write files in python with newline='' option to preserve newlines as \n on Windows 2021-01-22 12:16:27 +01:00
Kamil Śliwak
cc516b2a16 Replace docstrings with normal strings in python unit tests to get same line endings on all platforms 2021-01-22 12:15:33 +01:00
Leonardo
3045770a6f
Merge pull request #10828 from ethereum/smt_cex_value
[SMTChecker] Add msgvalue to cex if > 0
2021-01-21 21:34:38 +01:00
Leonardo Alt
a612daa783 Add msgvalue to cex 2021-01-21 19:05:44 +01:00
Kamil Śliwak
c7d8e7ee87 cmdlineTests.sh: Ask about updating expectations in case of error code mismatch too 2021-01-21 15:21:10 +01:00
Kamil Śliwak
8ac36068fc cmdlineTests.sh: Add edit and skip options like in isoltest 2021-01-21 13:58:28 +01:00
chriseth
a4e228e552 Autoupdate for commandline tests. 2021-01-21 13:43:20 +01:00
Alexander Arlt
061fecbc90 [whiskers] Add check that template contain tags. 2021-01-20 15:26:34 -05:00
Leonardo
a75b87c80e
Merge pull request #10813 from ethereum/smt_targets_option
Add CLI and JSON option to select SMTChecker targets
2021-01-20 18:37:08 +01:00
chriseth
bbd29b24ab Update tests. 2021-01-20 18:25:27 +01:00
chriseth
3cc07694ed Cleanup allocation. 2021-01-20 18:25:27 +01:00
chriseth
2cc1e3393f
Merge pull request #10603 from ethereum/yul-optimiser-step-fuzzing
Fuzzer: Enable fine-grained yul optimizer fuzzing
2021-01-20 17:43:03 +01:00
Leonardo Alt
3b23cadbdc Add CLI and JSON option to select SMTChecker targets 2021-01-20 17:35:37 +01:00
chriseth
60cb8726f1 Enable test. 2021-01-20 14:02:35 +01:00
chriseth
aad7297b58
Merge pull request #10818 from ethereum/explainDisabled
Enable via yul or explain why disabled.
2021-01-20 14:01:09 +01:00
Alexander Arlt
f928107181 [ewasm] Polyfill: balance & address: Update Tests. 2021-01-19 13:04:45 -05:00
Alexander Arlt
87e3fbee6c [ewasm] Polyfill: balance & address. 2021-01-19 13:03:40 -05:00
Bhargava Shastry
b3dd83a20b Enable fine grained yul optimizer fuzzing 2021-01-19 18:22:59 +01:00
Leonardo
0b023b893e
Merge pull request #10817 from ethereum/splitShiftBytesTest
Split shift bytes test.
2021-01-19 16:16:45 +01:00
chriseth
06d19a9203 Enable via yul or explain why disabled. 2021-01-19 16:12:53 +01:00
chriseth
1fcc76a562 Fix empty packed encoder. 2021-01-19 15:50:04 +01:00
chriseth
52511a2163 Split shift bytes test. 2021-01-19 14:55:18 +01:00
chriseth
f5092088b4
Merge pull request #10811 from ethereum/prep-for-fuzzable-opt-steps
Minor refactor yul optimizer test framework to make it easier to fuzz
2021-01-19 13:05:35 +01:00
chriseth
9caf671607
Merge pull request #10808 from ethereum/uninitializedInternal
Update expectations for uninitialized internal function.
2021-01-19 13:02:33 +01:00
chriseth
c3d3415207 Update expectations for uninitialized internal function. 2021-01-19 12:37:30 +01:00
Bhargava Shastry
7c24074909 Minor refactor yul optimizer test framework to make it easier to fuzz 2021-01-19 11:45:27 +01:00
Leonardo
9bde92ca20
Merge pull request #10807 from ethereum/fixIRReasonStrings
Properly omit require revert strings in IR code generator if requested.
2021-01-19 10:31:15 +01:00
Leonardo
957e9995a0
Merge pull request #10801 from blishko/issue-10793
[SMTChecker] Gather local variables also from nested try/catch clauses
2021-01-18 22:37:16 +01:00
chriseth
185e129657
Merge pull request #10776 from ethereum/fixABIEncoderWithSignature
Fix abi encode with signature shortcut.
2021-01-18 19:07:56 +01:00
chriseth
a3ee334b42 Omit require revert strings in IR code generator. 2021-01-18 18:47:55 +01:00
Martin Blicha
35d228d9b6 [SMTChecker] Gather local variables also from nested try/catch clauses 2021-01-18 18:30:18 +01:00
chriseth
87a68feea1
Merge pull request #10653 from ethereum/spdx-tests
Add more tests for the SPDX-License-Identifier
2021-01-18 18:05:25 +01:00
Leonardo Alt
c7ca87c012 Fix static virtual resolution 2021-01-18 16:23:38 +01:00
Kamil Śliwak
f0cb181545 Even more license tests 2021-01-18 16:17:06 +01:00
Alex Beregszaszi
0a3084abc0 Add metadata tests for SPDX-License-Identifier 2021-01-18 16:17:06 +01:00
Kamil Śliwak
baf530c484 Test helper for license metadata tests 2021-01-18 16:17:06 +01:00
Kamil Śliwak
5677211471 SyntaxTest::filterObtainedErrors(): Remove hard-coded preamble to match changes in setupCompiler() 2021-01-18 16:17:06 +01:00
Alex Beregszaszi
6f1f0c5bbc Do not insert SPDX identifier if already present in SyntaxTest 2021-01-18 16:15:17 +01:00
Alex Beregszaszi
5bbb017915 Add more tests for the SPDX-License-Identifier 2021-01-18 16:15:17 +01:00
chriseth
359c70649d
Merge pull request #10752 from ethereum/yulopti-option-order
[yulopti] Options ordered by name and in columns rather than rows
2021-01-18 15:59:58 +01:00
chriseth
1ad1591617
Merge pull request #10805 from ethereum/structMappingTestCase
Adding test for conversion of struct from storage to mapping.
2021-01-18 15:48:02 +01:00
chriseth
611d2b4de5 Enable some tests. 2021-01-18 14:30:50 +01:00
chriseth
87d4ae503b
Merge pull request #10699 from ethereum/refactor-yul-optimiser-test-framework
Yul optimizer test: Separate test parsing and optimisation
2021-01-18 14:28:15 +01:00
Djordje Mijovic
4c0cb2d76f Adding test for conversion of struct from storage to mapping. 2021-01-18 14:27:36 +01:00
chriseth
4f3839e4ba Fix abi encode with signature shortcut. 2021-01-18 13:44:52 +01:00
Djordje Mijovic
d738a5219c Activating more end to end tests via ir. 2021-01-18 12:52:33 +01:00
Djordje Mijovic
a0c80c2bdb [Sol->Yul] Enabling copying_bytes_multiassign test via ir. 2021-01-18 12:40:51 +01:00
Bhargava Shastry
02b28b42e8 Remove fuzzer mode from yul optimizer unit test framework. 2021-01-18 10:27:58 +01:00
Bhargava Shastry
3e7659596e Header cleanup 2021-01-18 10:27:58 +01:00
Bhargava Shastry
42c05df0a9 Yul optimizer test: Separate test parsing and optimisation 2021-01-18 10:27:58 +01:00
Kamil Śliwak
0f75582e12 [yulopti] Rewrite the check against overlapping abbreviations using ranges-v3 2021-01-16 01:10:55 +01:00
Kamil Śliwak
88a7dddfbd [yulopti] Sort options by step name, with special options on top of the list 2021-01-16 01:10:55 +01:00
Kamil Śliwak
18c0e70ccf [yulopti] Print options in column-wise rather than row-wise 2021-01-16 01:10:55 +01:00
Alex Beregszaszi
e117c9516e Replace "pragma experimental ABIEncoderV2" in tests where appropriate
And add a few tests for "pragma abicoder".
2021-01-15 19:57:09 +00:00
Alex Beregszaszi
2c92f7641b Move all experimental pragma tests to syntaxTests/pragma 2021-01-15 19:12:32 +00:00
Leonardo
726c5ff68c
Merge pull request #10777 from blishko/smt-fix-checked
[SMTChecker] Fix BMC crash related to `unchecked` blocks
2021-01-15 16:46:32 +01:00
Alex Beregszaszi
3e678acd7d
Merge pull request #10781 from ethereum/new-ir-tests
Enable some semantic tests for the IR
2021-01-15 14:48:22 +00:00
Martin Blicha
18214d1ccc [SMTChecker] Reset checked/unchecked flag to the default value when inlining function in BMC 2021-01-15 15:36:26 +01:00
Alex Beregszaszi
293bb01c56 Enable some semantic tests for the IR 2021-01-15 14:10:54 +00:00
Leonardo Alt
007d39871b [SMTChecker] Synthesize untrusted functions called externally 2021-01-15 11:56:26 +01:00
Djordje Mijovic
b92d024898 [isoltest] Error out in case of different result when enforcing via yul.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2021-01-14 22:37:12 +00:00
chriseth
db4b39e09e Round up allocations to multiples of 32. 2021-01-14 21:52:17 +00:00
chriseth
7d6331e26f Use round up function. 2021-01-14 21:01:43 +00:00
chriseth
aba8d807db
Merge pull request #10765 from ethereum/ir-revert-strings
Include revert strings in IR
2021-01-14 20:00:11 +01:00
Alex Beregszaszi
4491a290e2 Display unimplemented errors in Yul codegen testing
i.e. do not hide exceptions
2021-01-14 18:08:01 +00:00
Alex Beregszaszi
7c7fd22062 Include revert strings in IR 2021-01-14 18:45:12 +01:00
Alex Beregszaszi
d4627d53eb
Merge pull request #10235 from ethereum/onlyFailOnUnimplemented
Fail on assertion failures in yul code generation.
2021-01-14 16:55:07 +00:00
Leonardo
110e0e1f25
Merge pull request #10763 from blishko/smt-abi-fixes
[SMTChecker] Small fixes in handling ABI functions
2021-01-14 16:00:49 +01:00
chriseth
a4769d446f Fail on assertion failures in yul code generation. 2021-01-14 14:51:16 +00:00
chriseth
7d036dcb81
Merge pull request #10762 from ethereum/packedStorageOverflowSol2Yul
[Sol->Yul] Fixing uncheked increment/decrement.
2021-01-14 15:32:55 +01:00
chriseth
6769c519b2
Merge pull request #10764 from ethereum/fixLibraryFromModule
Fix accessing libraries inside modules.
2021-01-14 15:30:52 +01:00
chriseth
7f03af08b6
Merge pull request #10766 from ethereum/snark
Move snark.sol in tests to externalContracts
2021-01-14 15:06:23 +01:00
chriseth
e61c4b411e
Merge pull request #10754 from ethereum/extractTwoTests
Extract some tests.
2021-01-14 15:05:38 +01:00
Alex Beregszaszi
4db0e3049e Move snark.sol in tests to externalContracts 2021-01-14 13:55:36 +00:00
Martin Blicha
2ee0f347b9 [SMTChecker] additional regression tests 2021-01-14 14:54:14 +01:00
chriseth
a65415cdad Fix accessing libraries inside modules. 2021-01-14 14:07:08 +01:00
Djordje Mijovic
dc3e76bc2c [Sol->Yul] Fixing uncheked increment/decrement. 2021-01-14 13:46:04 +01:00
chriseth
170cd5d2ae
Merge pull request #10760 from ethereum/asmConstantsFileLevel
Fix accessing constants at file level from inline assembly.
2021-01-14 11:33:47 +01:00
chriseth
8905af28c3
Merge pull request #10759 from ethereum/nestedBytesArraySol2Yul
[Sol->Yul] Fixing nested bytes array push.
2021-01-14 11:33:06 +01:00
chriseth
45be47fc6b
Merge pull request #10756 from ethereum/fixModifierLookup
Fix modifier lookup
2021-01-14 11:28:26 +01:00
chriseth
8ad9290086 Fix modifier lookup. 2021-01-14 11:01:14 +01:00
chriseth
30305ebbd9 Fix accessing constants at file level from inline assembly. 2021-01-14 10:51:47 +01:00
chriseth
afbf68f79c
Merge pull request #10753 from ethereum/ir-negate
Fix YulUtilFunctions::negateNumberWrappingFunction
2021-01-14 10:48:15 +01:00
Djordje Mijovic
7c45509a77 [Sol->Yul] Fixing nested bytes array push. 2021-01-14 10:32:31 +01:00
chriseth
fb4b38a78e Extract some tests. 2021-01-13 23:45:51 +01:00
Alex Beregszaszi
c15c6d26b7 Fix YulUtilFunctions::negateNumberWrappingFunction 2021-01-13 21:29:37 +00:00
Martin Blicha
5e13744423 [SMTChecker] Fixed pushing string literal to bytes array 2021-01-13 16:30:50 +01:00
chriseth
6eea2f5c08
Merge pull request #9959 from a3d4/fix-ice-struct-with-mapping-assignment
Fix ICE caused by const structs with mappings
2021-01-13 15:19:02 +01:00
Leonardo
fe344ed6e5
Merge pull request #10748 from blishko/smt-refactoring
[SMTChecker] Refactoring common functionality
2021-01-13 14:23:19 +01:00
a3d4
35a25b107f Fix ICE caused by const structs with mappings 2021-01-12 18:39:54 +01:00
Martin Blicha
7c6340fe4f [SMTChecker] Refactoring expression to tuple assignment 2021-01-12 17:15:14 +01:00
chriseth
d97b9ba865
Merge pull request #10686 from ethereum/libraryCallGuard
Library call guard.
2021-01-12 16:52:24 +01:00
Leonardo
fa28e48415
Merge pull request #10727 from ethereum/smt_cex_internal_calls
[SMTChecker] Report internal calls in CHC transaction trace
2021-01-12 15:44:12 +01:00
chriseth
99add1e4e5
Merge pull request #10710 from ethereum/implicit-conversion-bug
Disallow certain implicit conversions between integer types.
2021-01-12 15:42:12 +01:00
Leonardo Alt
b3c3836388 Output internal calls 2021-01-12 14:57:04 +01:00
Leonardo Alt
f1ae24abc7 Remove extra line breaks 2021-01-12 14:00:07 +01:00
Leonardo
66a773aef9
Merge pull request #10721 from blishko/smt-try-catch
[SMTChecker] Support try-catch statements
2021-01-12 12:04:38 +01:00
hrkrshnn
e107d51f46 Disallow certain implicit conversions between integer types.
Disallow implicit conversion from ``uintN`` and ``intM`` when ``M > N``, and by extension, explicit
conversion between the same types are also disallowed.
2021-01-12 08:23:47 +01:00
chriseth
8058cad772 Enable some tests. 2021-01-11 20:37:45 +01:00
Alexander Arlt
bbef792568 Disable some ewasm tests. 2021-01-11 20:37:45 +01:00
Alexander Arlt
84f3530e71 Update tests. 2021-01-11 20:37:45 +01:00
chriseth
e807c9bb63 Library call guard. 2021-01-11 20:37:44 +01:00
chriseth
d43693ecca
Merge pull request #10675 from ethereum/refactor-bytecode-comparison-scripts
Refactor bytecode comparison scripts
2021-01-11 18:57:47 +01:00
Djordje Mijovic
85b8325f0b [Sol->Yul] Implementing dynamic array push for arrays of structs. 2021-01-11 17:49:42 +01:00
Kamil Śliwak
085f88d349 Create unit tests for prepare_report.py 2021-01-11 17:06:59 +01:00
chriseth
3804ad85f6 Enable tests. 2021-01-11 14:51:33 +01:00
Martin Blicha
ff76c989ac addressing review comments 2021-01-11 14:19:06 +01:00
Martin Blicha
3d7188ac7b update to the tests 2021-01-11 13:36:03 +01:00
Martin Blicha
09de54b5eb tests 2021-01-11 13:36:03 +01:00
Harikrishnan Mulackal
5241b7b761
Merge pull request #10684 from ethereum/fixIRWrappingExp
Use wrapping arithmetic for exp in unchecked blocks.
2021-01-06 18:53:54 +01:00
Harikrishnan Mulackal
3cb48b8c60
Merge pull request #10683 from ethereum/optSubEq
Optimize iszero(sub(x, y)) to eq(x, y).
2021-01-06 12:22:54 +01:00
Daniel Kirchner
308549f950 Simplify test and add Changelog entry. 2021-01-06 11:33:08 +01:00
Alex Beregszaszi
8edfa26f0a Mark the empty version pragma as invalid 2021-01-04 19:28:36 +00:00
Leonardo Alt
b02722ebda Add contract name to called function in cex 2021-01-04 10:03:16 +01:00
Djordje Mijovic
67c92b7f6e Updating gas costs and cmdline tests. 2020-12-30 17:48:41 +01:00
Djordje Mijovic
b74c08143f Deleting yul unimplemented test. 2020-12-30 17:19:04 +01:00
Djordje Mijovic
ddb05769a5 [Sol->Yul] Implementing type name. 2020-12-30 17:19:03 +01:00
Leonardo Alt
78d55e6b4a [SMTChecker] Support check/unchecked 2020-12-30 12:14:30 +01:00
Martin Blicha
be0a0f4d90 [SMTChecker] Added constraints for block properties 2020-12-29 22:17:44 +01:00
Leonardo Alt
9482e7de23 [SMTChecker] Fix calls to virtual/overriden functions 2020-12-29 11:25:20 +01:00
Martin Blicha
41d31fe4d4 updates to the tests 2020-12-28 20:05:52 +01:00
Martin Blicha
77dff222e9 disabling some tests because of nondeterminism in Spacer 2020-12-28 16:24:44 +01:00
Martin Blicha
745466b71f updates to the tests 2020-12-28 14:32:53 +01:00
Djordje Mijovic
c41f996c7b Adding more tests for array copying.
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-12-28 13:16:24 +01:00
chriseth
2ab83217e3 Use wrapping arithmetic for exp in unchecked blocks. 2020-12-22 16:49:55 +01:00
chriseth
e299d8ba64
Merge pull request #10677 from ethereum/dirtyMemoryBytesSol2Yul
[Sol->Yul] Disable old codegen test viaYul and create new one that fits IR semantics
2020-12-22 16:22:38 +01:00
chriseth
04d83af1d2
Merge pull request #10492 from ethereum/arrayClearingDiffBaseSol2Yul
[Sol->Yul] Fixing array clearing when copying from storage to storage.
2020-12-22 15:15:03 +01:00
chriseth
d46da8e53c Optimize iszero(sub(x, y)) to eq(x, y). 2020-12-22 15:11:48 +01:00
Djordje Mijovic
a204596c3e [Sol->Yul] Disable old codegen test viaYul and create new one that fits IR semantics.
Co-authored-by: chriseth <chris@ethereum.org>
2020-12-22 15:11:07 +01:00
Martin Blicha
d90b9da4f0 [SMTChecker] Refactoring 2020-12-22 13:10:48 +01:00
chriseth
b965446182 Catch panic. 2020-12-22 11:08:44 +01:00
Đorđe Mijović
b78443ac75
Merge pull request #10577 from ethereum/deleteMappingSol2Yul
[Sol->Yul] Skipping mapping types when deleting structs and arrays.
2020-12-21 20:08:51 +01:00
Leonardo
a48106ca1f
Merge pull request #10670 from blishko/smt-virtual-modifiers-fix
[SMTChecker] Fix virtual modifier called statically
2020-12-21 18:05:02 +01:00
Djordje Mijovic
adb9d0c41a [Sol->Yul] Fixing array clearing when copying from storage to storage. 2020-12-21 17:33:06 +01:00
Djordje Mijovic
8b6397e8fb Adding more syntax and semantic tests. 2020-12-21 15:30:49 +01:00
Đorđe Mijović
21dc6c8356
Merge pull request #10552 from ethereum/gettersSol2Yul
[Sol->Yul] Implementing getter for struct with bytes member
2020-12-21 15:29:29 +01:00
Djordje Mijovic
7b2614576f Activating some tests viaYul after implementing getters for bytes. 2020-12-21 14:46:13 +01:00
Djordje Mijovic
2d5a2c65a8 [Sol->Yul] Implementing getters for bytes and structs containing bytes member.
Co-authored-by: chriseth <chris@ethereum.org>
2020-12-21 14:46:06 +01:00
Martin Blicha
87ef0e16f5 [SMTChecker] Fix virtual modifier called statically 2020-12-21 13:52:28 +01:00
Djordje Mijovic
9b8634f2a7 [Sol->Yul] Skipping mapping types when deleting structs and arrays. 2020-12-21 13:19:25 +01:00
Bhargava Shastry
beed9de7d5
Merge pull request #10668 from ethereum/fuzzer-always-add-smt-pragma
ossfuzz: Add option to force SMT pragma and set it in solc fuzzers
2020-12-21 12:38:44 +01:00
Bhargava Shastry
a6a2b58e57 ossfuzz: Add option to force SMT pragma and set it in solc fuzzers
Co-authored-by: Leonardo <leo@ethereum.org>
2020-12-21 11:55:58 +01:00
chriseth
43baceb1ed Test for recursion with modifiers. 2020-12-21 11:39:59 +01:00
Leonardo
158154bac3
Merge pull request #10345 from ethereum/ir-runtime
Output runtime object in IR
2020-12-18 17:19:40 +01:00
Alex Beregszaszi
7e20a095a8
Merge pull request #10652 from ethereum/smt_constants_inplce
[SMTChecker] Replace constants by their value in-place
2020-12-18 14:22:32 +00:00
chriseth
c4ade1753e
Merge pull request #10445 from ethereum/modifiers
[Sol->Yul] Implement function modifiers.
2020-12-18 14:29:00 +01:00
Leonardo Alt
034d1ab90f [SMTChecker] Replace constants by their value in-place 2020-12-18 14:22:28 +01:00
Alex Beregszaszi
b14a6a10cc Report meaningful error if parsing a version pragma failed 2020-12-18 11:50:37 +00:00
Martin Blicha
7078e8f8f8 [SMTChecker] Fix analysis of overriding modifiers 2020-12-17 17:05:54 +01:00
chriseth
1fa371d426 Tests 2020-12-17 17:00:51 +01:00
chriseth
35908c602b Modifiers for constructors. 2020-12-17 17:00:51 +01:00
chriseth
ccaa81fbe7 Implement function modifiers. 2020-12-17 17:00:51 +01:00
Leonardo Alt
50be39fc21 Add and update tests 2020-12-17 14:42:49 +01:00
Alex Beregszaszi
953d18c6cb Output runtime object in IR 2020-12-16 19:23:10 +00:00
Leonardo Alt
f5c96ea6da Fix constant evaluation build 2020-12-16 17:59:00 +01:00
chriseth
3a23df6717 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-16 16:56:45 +01:00
chriseth
7338295fee
Merge pull request #10623 from ethereum/smt_const_expr
[SMTChecker] Apply const eval to arithmetic binary expressions
2020-12-16 15:39:16 +01:00
Kamil Śliwak
34e21c929a Fix a test for unicode direction override failing because of Windows line endings 2020-12-16 15:24:41 +01:00
Leonardo Alt
80e85b772b [SMTChecker] Apply const eval to arithmetic binary expressions 2020-12-16 14:58:00 +01:00
chriseth
8f833f4e8f
Merge pull request #10618 from ethereum/develop
Merge develop into breaking.
2020-12-16 12:34:41 +01:00
chriseth
5c40fb060c Report illegal tokens in the Yul parser. 2020-12-16 12:20:07 +01:00
Leonardo Alt
59428b8f76 Fix SMTChecker tests on breaking 2020-12-15 19:49:57 +01:00
Christian Parpart
381c63ec99 Scanner: Generate error on inbalanced RLO/LRO/PDF override markers. 2020-12-15 18:40:51 +01:00
chriseth
6c7e6a3c9f
Merge pull request #10615 from ethereum/develop
Merge develop into breaking.
2020-12-15 18:34:01 +01:00
chriseth
53368eff9b
Merge pull request #10604 from ethereum/strict-address-payable
[BREAKING] Strict address payable
2020-12-15 18:25:31 +01:00
Bhargava Shastry
b45a5d7605 Asmanalysis: Add test case that demonstrates bug 2020-12-15 17:57:19 +01:00
Bhargava Shastry
9b38176c77 AsmAnalysis: Fix out of bounds read due to incorrect bounds checking on literal arguments 2020-12-15 15:38:59 +01:00
chriseth
3c270ca7f7
Merge pull request #10608 from ethereum/develop
Merge develop into breaking.
2020-12-15 15:24:53 +01:00
hrkrshnn
fdaede9b3e Tests after disallowing some explicit payable conversions 2020-12-15 15:01:40 +01:00
chriseth
4e86390e40
Merge pull request #10590 from ethereum/deposit-test
Include the eth2 deposit contract as an external test
2020-12-15 14:57:38 +01:00
Bhargava Shastry
e0e30fc600
Merge pull request #10592 from ethereum/abiv2-isabelle-test-values-fix-bugs
Abiv2 isabelle fuzzing
2020-12-15 14:29:20 +01:00
chriseth
ffaf40950a
Merge pull request #10605 from ethereum/develop
Merge develop into breaking.
2020-12-15 14:01:01 +01:00
chriseth
2a54079d41
Merge pull request #10575 from ethereum/calldataArraySlices
Conversion of calldata array slices to memory
2020-12-15 12:21:33 +01:00
Bhargava Shastry
b273e52628 Abiv2 fuzzer: Enable differential fuzzing and remove support for string coding
co-authored-by: Leonardo <leo@ethereum.org>
2020-12-15 11:13:10 +01:00
Bhargava Shastry
39f1893956 Fix integer overflow due to large unsigned cpp_int 2020-12-15 11:12:51 +01:00
Martin Blicha
e2c27b8ea4 [SMTChecker] Fix internal error on constructor of a recursive struct 2020-12-15 09:53:52 +01:00
Djordje Mijovic
64f0120622 Change assertions to align to TypeChecker. 2020-12-15 09:21:50 +01:00
Djordje Mijovic
d479c98920 Adding tests for conversion of calldata slices to memory and storage and fixing syntax tests. 2020-12-15 09:21:47 +01:00
Martin Blicha
71f835b71b [SMTChecker] Fixed internal error when increment/decrement is applied on a result of push(). 2020-12-14 22:52:44 +01:00
Alex Beregszaszi
edbdff8619 Update tests 2020-12-14 19:32:31 +00:00
chriseth
271a17d908
Merge pull request #10496 from ethereum/address-payable
[BREAKING] tx.origin, msg.sender and address(literal) are non-payable addresses
2020-12-14 20:16:52 +01:00
chriseth
9c3690c246 Some more tests for overflow. 2020-12-14 19:12:48 +01:00
hrkrshnn
7438c4dc16 Tests after making all explicit address conversions as non-payable 2020-12-14 18:46:01 +01:00
Martin Blicha
103fa3b7eb [SMTChecker] Fix internal error on abstract modifier 2020-12-14 18:23:25 +01:00
Martin Blicha
27402781c4 [SMTChecker] Fixed crash on push to bytes on lhs of an assignment 2020-12-14 17:40:45 +01:00
hrkrshnn
88c99a7538 Tests/Docs: changing type of msg.sender and tx.origin into address
And also making the type of address(literal) as non-payable address.
2020-12-14 16:55:48 +01:00
Martin Blicha
0be325dc0d [SMTChecker] Fix handling of function calls where the function identifier is nested in a tuple. 2020-12-14 16:19:24 +01:00
chriseth
d257ab7141 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-14 16:05:12 +01:00
Alex Beregszaszi
34cab95446 Do not insert SPDX line if it is already present (in semantic tests) 2020-12-14 14:25:58 +00:00
chriseth
0dd2f1edbe Update counter-examples. 2020-12-14 14:21:35 +01:00
Alex Beregszaszi
3a7a0e4256 Add test cases for the deposit contract 2020-12-14 13:11:57 +00:00
Alex Beregszaszi
b97a12c299 Initial import of syntaxTests/externalContracts/deposit_contract.sol
Imported from https://github.com/axic/eth2-deposit-contract/tree/r2
2020-12-14 12:19:07 +00:00
Alex Beregszaszi
aa042ccb87 Disallow leading zeroes in sized-types
Also avoid using boost::lexical_cast for parseSize.
2020-12-14 11:40:14 +00:00
Alex Beregszaszi
4bffd040e2 Add tests for weirdly sized types
e.g. bytes00001
2020-12-14 11:40:11 +00:00
chriseth
28374447d2
Merge pull request #10582 from ethereum/addr-literal
Fix crash with oversized address literals
2020-12-14 12:14:28 +01:00
chriseth
561280a5cc Merge remote-tracking branch 'origin/develop' into breaking 2020-12-14 11:33:40 +01:00
Kamil Śliwak
ac12274acd cmdlineTests.sh: Fix the script failing to detect that --ast option does not exist 2020-12-12 06:30:57 +01:00
Kamil Śliwak
1f2ffa99c2 cmdlineTests.sh: Fix test_solc_assembly_output including garbage in the tested output 2020-12-12 06:30:57 +01:00
Alex Beregszaszi
33ff2b16ff Fix crash with oversized address literals 2020-12-11 23:45:23 +00:00
Leonardo
db9aa36d6c
Merge pull request #10567 from blishko/unary-operators-fix
[SMTChecker] Fix CHC analysis of increment/decrement
2020-12-11 18:52:12 +01:00
Leonardo
da9cede0fe
Merge pull request #10348 from ethereum/simplify-compiler
Simplify abstraction of Compiler/CompilerContext/CompilerStack
2020-12-11 17:42:36 +01:00
Martin Blicha
8927015e5a [SMTChecker] Adding unary increment and decrement as under/overflow verification targets for the CHC engine 2020-12-11 17:41:50 +01:00
Leonardo
7972d8eb98
Merge pull request #10578 from ethereum/ast-test
Properly print sources in ASTJSONTest
2020-12-11 17:41:31 +01:00
Leonardo
adead3072d
Merge pull request #10570 from ethereum/abiv2-isabelle-test-values-fix-bugs
Ensure empty arrays are not visited and fix formatting issues
2020-12-11 17:38:15 +01:00
Harikrishnan Mulackal
2139f93410
Merge pull request #10556 from ethereum/external-test-readme
README describing the workflow around external tests and their repositories
2020-12-11 17:37:38 +01:00
Alex Beregszaszi
4a7f2ddc6d Properly print sources in ASTJSONTest 2020-12-11 15:28:54 +00:00
Alex Beregszaszi
ccd1f283aa
Merge pull request #9360 from ethereum/rich-function-type
Improve error message when assigning builtin functions
2020-12-11 15:25:59 +00:00
Alex Beregszaszi
98d8174d31 Simplify Compiler/CompilerContext by removing extra layers of indirection 2020-12-11 14:43:51 +00:00
Alex Beregszaszi
b40b82535c Add comprehensive tests for FixedHash
Also explicitly disallow FixedHash<0>, given most functions were not working with it, and it is not very useful.
2020-12-11 12:20:37 +00:00
chriseth
baaf7c0db8 Implement address(...).code in the IR 2020-12-11 03:00:30 +00:00
Alex Beregszaszi
7b347b9ec2 Introduce address(...).code 2020-12-11 03:00:30 +00:00
Alex Beregszaszi
fa37e69c25 Improved error messages when converting to/from builtin functions 2020-12-10 22:38:15 +00:00
Alex Beregszaszi
ff7e45f417 Add test cases for assigning builtins/bound functions to function types 2020-12-10 22:18:52 +00:00
Đorđe Mijović
9e4f3bad06
Merge pull request #10569 from ethereum/byteArrayStorageStorage
Fix copying byte arrays from storage to storage.
2020-12-10 22:52:50 +01:00
Bhargava Shastry
9bd4a1095e Ensure empty arrays are not visited and fix formatting issues 2020-12-10 22:43:45 +01:00
Alex Beregszaszi
bd641a5206 Enable more C++ compiler warnings 2020-12-10 21:03:58 +00:00
chriseth
7764ee8d86 Fix copying byte arrays from storage to storage. 2020-12-10 21:47:37 +01:00
Kamil Śliwak
747e1709ff fixup! README describing the workflow around external tests and their repositories 2020-12-10 19:53:49 +01:00
Kamil Śliwak
12418c533b fixup! README describing the workflow around external tests and their repositories 2020-12-10 19:53:49 +01:00
Kamil Śliwak
14ea1bc145 README describing the workflow around external tests and their repositories 2020-12-10 19:53:49 +01:00
Leonardo Alt
64f81fe82b Fix SMT tests 2020-12-10 18:54:52 +01:00
chriseth
ef3bcbda97
Merge pull request #9549 from ethereum/yul-reserved
[BREAKING] Disallow using reserved identifiers in Yul
2020-12-10 18:49:44 +01:00
chriseth
f7a7e2928b New test. 2020-12-10 18:35:13 +01:00
Alex Beregszaszi
7cd05bf603 Introduce block.chainid 2020-12-10 17:07:54 +00:00
Alex Beregszaszi
c032ad3379 Update tests 2020-12-10 17:18:15 +01:00
chriseth
d0551b67d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-10 17:07:56 +01:00
Bhargava Shastry
dc1c0e9d4e Abiv2 fuzzer: Retrieve values to be encoded from the fuzzer 2020-12-10 16:33:14 +01:00
Bhargava Shastry
fe79a27a0a
Merge pull request #10561 from ethereum/abiv2-isabelle-values
Abiv2 fuzzer: Make integer value generation consistent with range for…
2020-12-10 14:15:07 +01:00
chriseth
e15136c210
Merge pull request #10558 from ethereum/magictype-tests
Adds more tests for state access (block/tx/msg)
2020-12-10 14:05:37 +01:00
Bhargava Shastry
3c8caabf2e Remove unused code 2020-12-10 12:56:04 +01:00
Bhargava Shastry
693548b787 Abiv2 fuzzer: Make integer value generation consistent with range for that integer type 2020-12-10 12:34:14 +01:00
chriseth
4861c9b8d1
Merge pull request #10554 from ethereum/emptyBytesPushSol2Yul
[Sol->Yul] Implementing empty byte array push.
2020-12-10 12:19:07 +01:00
chriseth
482bda6887 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-10 12:15:52 +01:00
Mathias Baumann
37cc795034 Fix segfault for empty @return tags in modifiers 2020-12-10 11:54:40 +01:00
Leonardo
7e930f7bb3
Merge pull request #10543 from ethereum/abiv2-isabelle-encode-test
Isabelle abiv2 fuzzer: Add type string
2020-12-09 23:33:41 +01:00
Alex Beregszaszi
f9d6abf69b Add more tests for state access (block, msg, tx, etc.)
Move some of them out of SolidityEndToEndTests. Additionally this ensures the deterministic values of the testing infrastructure.
2020-12-09 20:46:01 +00:00
Leonardo
9e07981920
Merge pull request #10477 from ethereum/smt_isoltest_cex
[SMTChecker] Move CHC counterexamples to primary location
2020-12-09 20:37:24 +01:00
Leonardo Alt
3c142e0e94 Move CHC counterexamples to primary location 2020-12-09 19:55:18 +01:00
Djordje Mijovic
ab74194ca3 [Sol->Yul] Implementing empty byte array push. 2020-12-09 19:31:35 +01:00
Bhargava Shastry
2e3cba996a Isabelle abiv2 fuzzer: Add type string 2020-12-09 18:10:10 +01:00
Kamil Śliwak
da2c2f4d40 Switch the external tests back to the usual branches from solidity-external-tests (080 version) 2020-12-09 18:08:12 +01:00
chriseth
3f748bbb94
Merge pull request #10336 from ethereum/enablecoderv2bydefault
[BREAKING] Enable ABI coder v2 by default.
2020-12-09 18:05:07 +01:00
chriseth
1c99537b5a
Merge pull request #10550 from ethereum/chainIdView
[BREAKING] Mark chainid as view.
2020-12-09 17:41:27 +01:00
chriseth
870fd24723
Merge pull request #9888 from ethereum/account-hash
Support address().codehash
2020-12-09 17:40:56 +01:00
Kamil Śliwak
165cab9e9d Switch the external tests back to the usual branches from solidity-external-tests 2020-12-09 17:33:13 +01:00
Daniel Kirchner
588535566f Mark chainid as view. 2020-12-09 16:55:51 +01:00
Alex Beregszaszi
ad6739d0f6 Support address().codehash 2020-12-09 14:58:27 +00:00
Daniel Kirchner
e691b7402a Move standard-json "modelCheckerSettings" key to "settings.modelChecker". 2020-12-09 15:53:32 +01:00
chriseth
251f2a4d93 Fix bug in constant evaluator. 2020-12-09 15:50:53 +01:00
chriseth
dff7dcdc27 Update source location tests. 2020-12-09 15:25:15 +01:00
chriseth
3f5925e1c3 Update gas cost tests. 2020-12-09 15:25:15 +01:00
chriseth
72f1e4ea0b Explicitly set coder to v1 for syntax tests. 2020-12-09 15:25:15 +01:00
chriseth
a5bd22795e Force running abi coder v1 instead of v2. 2020-12-09 15:25:15 +01:00
chriseth
b18c76e34b Merge remote-tracking branch 'origin/develop' into breaking 2020-12-09 15:24:49 +01:00
Leonardo Alt
a961a76263 Do not run SMTChecker when file level functions/constants are present. 2020-12-09 12:18:55 +01:00
Leonardo
3ca4a5136d
Merge pull request #10539 from blishko/test-issue-10502
[SMTChecker] Adding test witnessing that SMTChecker no longer crashes when producing CEX with arrays
2020-12-09 11:03:53 +01:00
Martin Blicha
de34fe8aa3 [SMTChecker] Adding test witnessing that SMTChecker no longer crashes when producing CEX with arrays 2020-12-09 09:13:39 +01:00
Alex Beregszaszi
47b10fd751 Report warning if contract uses abicoder v1, but IR is requested 2020-12-09 01:20:58 +00:00
chriseth
806453aca9 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 21:00:09 +01:00
chriseth
0d7f9ae183
Merge pull request #10520 from ethereum/fix-initial-optimizer-settings-in-external-tests
Fix initial optimizer settings in external tests
2020-12-08 20:52:59 +01:00
chriseth
49d1f541a1
Merge pull request #10264 from ethereum/warn-conversion
Enable -Wconversion
2020-12-08 20:37:12 +01:00
chriseth
672abc2276
Merge pull request #10530 from ethereum/changeConstructorOrder
[Sol->Yul] Evaluate base arguments in derived to base order.
2020-12-08 20:32:48 +01:00
chriseth
e97ca0a777 Evaluate base arguments in derived to base order. 2020-12-08 20:27:06 +01:00
Alex Beregszaszi
7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
chriseth
b045195c1e Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 17:42:31 +01:00
Kamil Śliwak
a66ab1eb4e Simplify functions for setting solc version in Truffle config 2020-12-08 16:23:37 +01:00
Kamil Śliwak
8cd6e15333 When changing compiler settings in Truffle config, always set all of them 2020-12-08 16:21:46 +01:00
Kamil Śliwak
5868eb7879 Take into account optimization level when creating initial Truffle settings for external tests 2020-12-08 16:11:17 +01:00
Kamil Śliwak
c6643712f7 Refactor truffle_run_test() to make optimizer settings reusable 2020-12-08 16:11:16 +01:00
Kamil Śliwak
609f1746c9 force_solc_settings: Stop using the outdated 'solc' key for compiler settings in truffle-config.js
- Settings were moved under 'compilers' in Truffle 5.0.0 and none of the projects use older Truffle.
2020-12-08 16:10:42 +01:00
Kamil Śliwak
a64a2fa186 Remove unused find_truffle_config 2020-12-08 16:10:11 +01:00
Leonardo
71a4a4efb1
Merge pull request #10529 from blishko/compound_assignment
[SMTChecker] Remove assert that is not true for compound assignment with right shift
2020-12-08 15:43:36 +01:00
Bhargava Shastry
fe6543a7c8 Abiv2 isabelle: Add fuzzer test harness skeleton and update CMake 2020-12-08 13:05:23 +01:00
Martin Blicha
12aa654bad added test 2020-12-08 13:05:16 +01:00
Djordje Mijovic
acb93f3a97 Disallowing usage of msg.data in receive() function. 2020-12-08 11:49:20 +01:00
Alex Beregszaszi
66ee3ec533 Remove the \b, \f, \v escape sequences from the Scanner 2020-12-07 21:10:03 +00:00
chriseth
759db0e646 Properly filter requested artefacts inside the EVM objects. 2020-12-07 22:03:06 +01:00
Martin Blicha
ff0c794674 [SMTChecker] Fixing conversion from StringLiteral to FixedBytes 2020-12-07 19:30:51 +01:00
Leonardo Alt
b7ac207391 [SMTChecker] Support return in CHC 2020-12-07 18:17:33 +01:00
Kamil Śliwak
ec21fba4b7 Update to 0.8.0 versions of solidity-external-tests branches where necessary/available 2020-12-07 17:18:48 +01:00
Kamil Śliwak
d00bf35d6d Don't run Gnosis external tests without optimization
- They fail because the code size exceeds 24576 bytes.
2020-12-07 17:17:57 +01:00
chriseth
a3c5d37d02 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-07 17:13:48 +01:00
chriseth
8623e7fbe8
Merge pull request #10429 from ethereum/fix-and-enable-external-tests
Fix and enable external tests
2020-12-07 16:48:44 +01:00
Alex Beregszaszi
a8197788d0 Replace the inconsistent use of u160/Address/h160 with h160 only 2020-12-07 16:44:59 +01:00
chriseth
73a2843f05
Merge pull request #10513 from ethereum/groupDecoder
Group decoding function cases.
2020-12-07 14:40:19 +01:00
chriseth
50d5c77197
Merge pull request #10512 from ethereum/external-tests-remove-force-abi-v2
Remove the option for forcing ABIv2 from external tests
2020-12-07 14:39:10 +01:00
chriseth
254119d146
Merge pull request #10506 from ethereum/superInLibs
Make super unavailable in libraries.
2020-12-07 14:36:42 +01:00
Daniel Kirchner
6c70208d5f
Merge pull request #10359 from ethereum/extra-semi
Enable the -Wextra-semi warning
2020-12-07 14:35:30 +01:00
chriseth
251f722919 Group decoding function cases. 2020-12-07 14:14:54 +01:00
Kamil Śliwak
c7b95e385f external tests: Update solc-js dependencies after forcefully replacing it
- Otherwise it fails if the external project uses a version that is too old and does not have some newly added dependencies
2020-12-07 14:09:18 +01:00
Kamil Śliwak
70a2fc58b0 Add jobs and scripts running external tests for Gnosis v2 2020-12-07 14:09:18 +01:00
Kamil Śliwak
e05241adfc Update Colony, Gnosis and OpenZeppelin external tests to run on updated 0.7.x branches from solidity-external-tests 2020-12-07 14:09:18 +01:00
chriseth
b86c91d1a3 Make super unavailable in libraries. 2020-12-07 13:59:50 +01:00
Kamil Śliwak
4d76e22439 Remove the option for forcing ABIv2 from external tests 2020-12-07 13:55:57 +01:00
chriseth
329b8f2a60 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-07 13:04:14 +01:00
Bhargava Shastry
83fc7d3f7d
Merge pull request #10487 from ethereum/yul-interpreter-expression-nesting-level
Yul interpreter: Introduce expression evaluation maximum nesting depth
2020-12-07 11:26:14 +01:00
Kamil Śliwak
3619a0a0f4
Merge pull request #10464 from ethereum/enable-shellcheck-for-external-test-scripts
Enable shellcheck for external test scripts
2020-12-04 18:56:09 +01:00
Bhargava Shastry
32fd692c51 Yul interpreter: Introduce expression evaluation maximum nesting depth 2020-12-04 17:27:03 +01:00
Alex Beregszaszi
1e2bfbd6b2 Enable the -Wextra-semi warning 2020-12-04 17:21:19 +01:00
Djordje Mijovic
2839a1b0bf [Sol->Yul] Documenting difference in initialization order in case of inheritance.
Co-authored-by: Leonardo <leo@ethereum.org>

Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-12-04 16:32:56 +01:00
Bhargava Shastry
0d6cae304b abiv2 proto fuzzer: Move anon namespace utility functions to common source 2020-12-04 15:33:41 +01:00
chriseth
4be9b409de Remove unary plus. 2020-12-04 15:14:25 +01:00
chriseth
89919e47d3 New test. 2020-12-04 15:14:25 +01:00
Christian Parpart
c5d172c058 Reimplement constant evaluator. 2020-12-04 15:14:25 +01:00
chriseth
49bde69afa Move computation of constants out of types.cpp 2020-12-04 15:14:25 +01:00
Leonardo Alt
7490ffbe13 Use nonlinear clauses instead of inlining for base constructors 2020-12-04 13:25:56 +01:00
Kamil Śliwak
55ccfc32f5 Remove external test scripts from shellcheck ignores 2020-12-03 22:17:44 +01:00
Kamil Śliwak
8080be9445 external test scripts: Replace global $SOLJSON variable with a parameter 2020-12-03 22:17:44 +01:00
Kamil Śliwak
fcf0538224 external test scripts: Replace global $FORCE_ABIv2 variable with a parameter 2020-12-03 22:17:44 +01:00
Kamil Śliwak
3590311e6f external test scripts: Replace the old dollar expressions with newer variants 2020-12-03 22:17:44 +01:00
Kamil Śliwak
0a29218848 external test scripts: Quote variables properly 2020-12-03 22:17:44 +01:00
chriseth
75266ea8d4
Merge pull request #10488 from ethereum/fixDocsRevertData
Fix documentation about revert data.
2020-12-03 19:21:44 +01:00
chriseth
61fd76cb27 Fix documentation about revert data. 2020-12-03 18:47:16 +01:00
chriseth
d56a7bb89e
Merge pull request #10489 from ethereum/develop
Merge develop into breaking.
2020-12-03 18:11:12 +01:00
chriseth
e04cc80438
Merge pull request #9555 from ethereum/yul-parser-refactor
Yul parser refactor
2020-12-03 18:07:31 +01:00
hrkrshnn
9e5d7b9910 Test updates after disallowing Integer -> Contract conversion 2020-12-03 17:53:00 +01:00
chriseth
27e44b85e3
Merge pull request #10419 from ethereum/bug-namesimplifier
Fix a bug in NameSimplifier.
2020-12-03 17:52:40 +01:00
Alex Beregszaszi
a9be2e4bb8 update tests 2020-12-03 17:15:45 +01:00
Alex Beregszaszi
6c0a3bd043 Ensure that builtins must be executed 2020-12-03 17:15:44 +01:00
Alex Beregszaszi
43353bb6ca update tests 2020-12-03 17:15:43 +01:00
Alex Beregszaszi
3da2b67b67 simplify parser 2020-12-03 17:14:49 +01:00
hrkrshnn
40244c5469 Tests/Docs after stricter explicit conversion. 2020-12-03 16:51:05 +01:00
Bhargava Shastry
e1b44500dd Yul interpreter: Smaller execution timeout for tests and additional test cases 2020-12-03 10:08:41 +01:00
Leonardo
088b694f0b
Merge pull request #10207 from ethereum/smt_tests_asserts
[SMTChecker] Add uncovered test and replace uncovered tests by asserts
2020-12-03 08:59:48 +01:00
Martin Blicha
2ee633f404 [SMTChecker] Added support for public getters through this. 2020-12-02 16:06:48 +01:00
chriseth
d50676ecb0
Merge pull request #10451 from ethereum/noTypeSuper
No type super
2020-12-02 15:56:41 +01:00
chriseth
52c49aebe8 Disallow meta type on super. 2020-12-02 15:43:18 +01:00
hrkrshnn
3efac3eef0 NameSimplifier is removed from steps available to users. 2020-12-02 13:48:01 +01:00
chriseth
9a5902f9d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-02 12:28:02 +01:00
Kamil Śliwak
23a9e517e7 Force the use of latest Truffle in ENS external tests 2020-12-02 01:26:16 +01:00
Kamil Śliwak
bbf2471f64 External tests: Replace hard-coded version in force_truffle_version() with a parameter 2020-12-02 01:26:16 +01:00
chriseth
e10712c173
Merge pull request #10454 from ethereum/ewasm-cleanup
[ewasm] Clean up some builtins and fix text representation of `select`
2020-12-01 17:34:48 +01:00
chriseth
c4e97b7624 Update tests. 2020-12-01 16:15:19 +01:00
chriseth
577c1d301b Reduce warnings in commandline tests. 2020-12-01 16:09:46 +01:00
chriseth
c193ce6c07 Rename SourceReferenceFormatterHuman. 2020-12-01 16:09:46 +01:00
Alex Beregszaszi
1dedba8538 Only use SourceReferenceFormatterHuman 2020-12-01 16:09:46 +01:00
chriseth
edfae1ed05
Merge pull request #10458 from ethereum/fixMergeProblems
Fix tests after merge.
2020-12-01 16:08:51 +01:00
Alex Beregszaszi
d22434ee57 Change ABIEncoderV1 to not pad empty strings 2020-12-01 14:32:18 +00:00
chriseth
da91e590db Fix tests after merge. 2020-12-01 15:30:50 +01:00
chriseth
390640f557
Merge pull request #10384 from ethereum/called_directly_feature
Use annotation.calledDirectly to simplify IR codegen
2020-12-01 15:07:02 +01:00
chriseth
8279d90ba2
Merge pull request #10403 from ethereum/rename-asmdata
Rename AsmData* to AST*
2020-12-01 14:33:11 +01:00
chriseth
1944d5ce44
Merge pull request #9722 from ethereum/fix-9676
Add Solidity test case generator framework
2020-12-01 14:26:12 +01:00
chriseth
6d1454fce6 Disallow conversion to super. 2020-12-01 14:15:50 +01:00
Alex Beregszaszi
04cf4867fe [ewasm] Clean up opcodes/builtins in the binary encoder
Also make sure that `i32.drop/i64.drop` won't silently drop its arguments, as they may have side-effects.
2020-12-01 12:50:54 +00:00
Alex Beregszaszi
a29a7ad680 [ewasm] Properly encode i32/i64.select in the text format 2020-12-01 11:22:38 +00:00
Mathias Baumann
ea5b63914a Add test to cover (L.f)() case 2020-12-01 12:02:29 +01:00
chriseth
6de7eaba95 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-01 10:50:13 +01:00
chriseth
388fcddd23
Merge pull request #10415 from ethereum/arrayClearingStorageSol2Yul
[Sol->Yul] Fixing copying from storage to storage.
2020-12-01 09:43:47 +01:00
Djordje Mijovic
bd86588459 Adding more tests for array copying from storage to storage. 2020-12-01 08:50:36 +01:00
Djordje Mijovic
28e01202af [Sol->Yul] Fixing coping from storage to storage. 2020-12-01 08:50:33 +01:00
Leonardo Alt
fa561dbd0e Add uncovered test and replace uncovered tests by asserts 2020-11-30 18:46:47 +01:00
Harikrishnan Mulackal
91e67472bf
Merge pull request #10383 from ethereum/add-ens-external-tests
External tests: Add ENS contracts
2020-11-30 18:15:15 +01:00
Alex Beregszaszi
7e7a42c6ad
Merge pull request #10441 from ethereum/fix-version-pragma-replacement-in-external-tests
Fix command for stripping version pragmas in external tests
2020-11-30 15:24:20 +00:00
chriseth
ce6e52b052
Merge pull request #10430 from ethereum/wasm-select
[ewasm] Add i32.select/i64.select
2020-11-30 14:42:26 +01:00
Kamil Śliwak
dc57451775 Replace the command for stripping version pragmas in external tests with one that does not break on ^<=> 2020-11-30 14:25:46 +01:00