chriseth
5e9637bc39
Mapping access with multi-slot keys.
2021-02-24 13:44:23 +01:00
chriseth
2d48052ae5
Merge pull request #11003 from ethereum/ir-bug-incorrect-return-variable-count
...
Fix IR bug on deleting storage variables of function type.
2021-02-24 13:24:31 +01:00
hrkrshnn
2c2c7a4473
Fix IR bug on deleting storage variables of function type.
...
Calling the zeroing function assumed that the stack slots needed for the type was always 1. This is
false for function types.
2021-02-24 12:43:33 +01:00
Kamil Śliwak
e87cd0afdf
Check that there is an interface type before querying validity of location.
2021-02-24 11:22:40 +01:00
Harikrishnan Mulackal
58e0977647
Merge pull request #10994 from ethereum/remove-remains-of-ast-json-option
...
Remove the last remains of --ast-json option
2021-02-24 10:21:30 +01:00
chriseth
1220d8df7b
Merge pull request #10998 from ethereum/clean-up-function-external-type-tests
...
Minor cleanup in syntax tests for function types
2021-02-23 17:59:26 +01:00
chriseth
e33c058a60
Merge pull request #10896 from ethereum/issue-10870
...
Fix issue with pop on storage array.
2021-02-23 17:49:17 +01:00
hrkrshnn
66d6d20f65
Converted hash collision error into a fatal type error.
...
The check is performed during ContractLevelChecker. However, the TypeChecker throws in certain cases
when it encounters functions, whose hashes collide.
2021-02-23 17:09:40 +01:00
Kamil Śliwak
cf2847afc4
Remove duplicate syntax tests for functions taking internal struct types
2021-02-23 16:46:49 +01:00
Kamil Śliwak
fc7a091bfb
Move several tests related to function types from nameAndTypeResolution/ to more specific directories
2021-02-23 16:46:49 +01:00
chriseth
596e8dd9b6
Merge pull request #10959 from ethereum/assert-too-strict
...
Loosened up a really strict assert from ABIFunctions.cpp
2021-02-23 14:59:14 +01:00
chriseth
02b27bdc64
Merge pull request #10976 from ethereum/fix-boost-filesystem-bug
...
Tests: Do not remove filename from boost filesystem path for corner cases
2021-02-23 14:43:55 +01:00
Alexander Arlt
ae6996efc1
Fix issue with pop on storage array.
2021-02-23 14:26:55 +01:00
chriseth
3dcba53595
Merge pull request #10993 from ethereum/fixModuleMemberNames
...
Fix module member names for importing with renaming.
2021-02-23 14:20:28 +01:00
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