Commit Graph

5770 Commits

Author SHA1 Message Date
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