Commit Graph

2839 Commits

Author SHA1 Message Date
chriseth
6b5f83cdfa
Merge pull request #9058 from ethereum/memberAccessSolYul
[Sol->Yul] Member access for structs.
2020-06-03 21:19:49 +02:00
chriseth
f38e3a3574
Merge pull request #9056 from ethereum/solYulGetters
[Sol->Yul] Implement getters.
2020-06-03 19:08:15 +02:00
Mathias Baumann
6f8b5fe53b Disallow override with non-public state variables 2020-06-03 14:03:26 +02:00
Christian Parpart
c708a1bec2 AsmAnalysis: Fixes a superfluous whitespace in an error string 2020-06-03 12:23:06 +02:00
chriseth
e7f3c042b6 Struct member access for storage and memory. 2020-06-03 10:37:39 +02:00
chriseth
37e8d78cff [Sol->Yul] Implement getters. 2020-06-03 10:33:37 +02:00
Leonardo
96ce4abe0e
Merge pull request #9069 from ethereum/smt_try
[SMTChecker] Fix internal error on try/catch
2020-06-02 21:09:49 +02:00
chriseth
8ab8d5b1b0 Do not try compiling via yul if explicitly forbidden. 2020-06-02 19:55:33 +02:00
chriseth
c07254f5ac
Merge pull request #9055 from ethereum/issue-8881
Output error when forward referencing constants in inline assembly
2020-06-02 17:10:56 +02:00
chriseth
837e29fff8
Merge pull request #9084 from ethereum/remove-dead-code-from-execution-framework
Remove dead code from SolidityExecutionFramework::compileContract()
2020-06-02 17:00:27 +02:00
Leonardo Alt
10162016ae [SMTChecker] Fix internal error on try/catch 2020-06-02 16:51:53 +02:00
chriseth
9c92562e28
Merge pull request #9059 from ssi91/refactor-interactive-tests
Refactor interactive tests
2020-06-02 16:50:31 +02:00
ssi91
79407c87fb remove extra definition of printIndented
add CommonBaseTestCase class and inherit some of TestCase classes from it. Since that, remove print source extra definitions

create the base defifnition for printUpdatedExpectations and remove extra definitions of the method

make CommonBaseTestCase c-tor explicit

include AnsiColorized.h and sort includes

implement a common result checker

move the common implementations into TastCase
2020-06-02 21:15:00 +07:00
Leonardo
97cb091ada
Merge pull request #9068 from ethereum/smt_fix_state_var_init_call
[SMTChecker] Relax assertion about callstack
2020-06-02 15:53:14 +02:00
Mathias Baumann
bdc2c63327 Output error when forward referencing constants in inline assembly 2020-06-02 14:37:54 +02:00
Leonardo Alt
ede39fc2da [SMTChecker] Relax assertion about callstack 2020-06-02 12:50:51 +02:00
Kamil Śliwak
9bb9b6345c SolidityExecutionFramework: Fix indentation
- This code can never be reached because CompilerStack.compile() called above does the same analysis and fails if it's not successful.
2020-06-01 18:25:02 +02:00
Kamil Śliwak
df7b82bf31 SolidityExecutionFramework: Remove dead code for handling errors from parsing and analysis
- This code can never be reached because CompilerStack.compile() called above does the same analysis and fails if it's not successful.
2020-06-01 18:24:31 +02:00
Kamil Śliwak
311f025eb5 SolidityExecutionFramework: Fix compileContract() to print Yul errors from the correct source 2020-06-01 18:17:50 +02:00
Leonardo Alt
2128ff9f13 Fix ICE on push for member access 2020-05-29 19:13:27 +02:00
Leonardo Alt
e5d25692a5 [SMTChecker] Fix BMC targets with FP 2020-05-29 18:13:13 +02:00
chriseth
0b216f5771
Merge pull request #9050 from ethereum/smt_fix_nonvalue_asgn
[SMTChecker] Fix ICE on index access assignment inside single branches
2020-05-28 16:25:46 +02:00
chriseth
65d8b6cf75
Merge pull request #9033 from a3d4/partfix-5819-add-errorid-to-error-class
Add unique ID to Error class
2020-05-28 16:24:47 +02:00
Leonardo
1051cea91c
Merge pull request #9052 from ethereum/smt_add_test_delete_m_d_array
[SMTChecker] Add test that deletes arrays
2020-05-28 16:14:55 +02:00
Leonardo Alt
9b0146be42 Add test 2020-05-28 15:56:47 +02:00
Leonardo Alt
ec766958ea Add test 2020-05-28 13:14:21 +02:00
Leonardo Alt
13f32268da [SMTChecker] Add test that shows that deleting arrays takes the index into account 2020-05-28 13:08:16 +02:00
chriseth
f608e50bad
Merge pull request #9029 from ethereum/fewerInternalSourceRefs
Do not set source locations for small internal assembly routines.
2020-05-28 11:14:20 +02:00
chriseth
ee8307ceed
Merge pull request #9044 from ethereum/issue-9028
Fix failure to find overload resolution when overrides are involved
2020-05-28 10:33:01 +02:00
a3d4
be83c54d79 Throw TestParserError instead of Error in tests 2020-05-28 02:26:17 +02:00
Leonardo Alt
9e9f0c52e1 [SMTChecker] Support to bitwise 2020-05-27 20:59:00 +02:00
Mathias Baumann
a846c18e67 Fix failure to find overload resolution when overrides are involved 2020-05-27 18:31:56 +02:00
chriseth
eb923af09c Do not set source locations for small internal assembly routines. 2020-05-27 18:26:46 +02:00
chriseth
afa873fe9f
Merge pull request #8913 from ethereum/yul-remove-pc-instr
Mark EVM instruction `pc()` as deprecated when used in inline assembly.
2020-05-27 12:10:32 +02:00
Christian Parpart
b7fa5d5040 Mark EVM instruction pc() as deprecated when used in inline assembly. 2020-05-27 12:07:23 +02:00
chriseth
1bf706085d Merge pull request #9030 from ethereum/issue-8923
Fix ICE when trying to decode too large static arrays
2020-05-27 11:45:39 +02:00
chriseth
0aa3fb5026
Merge pull request #9014 from ethereum/sol-yul-abidecode
[Sol - Yul] Add support for ABIDecode.
2020-05-27 11:44:13 +02:00
chriseth
f066050ec0 Merge pull request #9024 from ethereum/namableTypes
Disallow non-namable types for inline arrays.
2020-05-27 09:21:07 +02:00
Kamil Śliwak
f574d8ec3a Don't assume that an expression cannot be associated with a function declaration 2020-05-27 00:05:18 +02:00
Alexander Arlt
118cb13476 [Sol - Yul] Add support for ABIDecode. 2020-05-26 13:30:37 -05:00
Mathias Baumann
884e7cbffc Fix ICE when trying to decode too large static arrays 2020-05-26 19:36:18 +02:00
chriseth
d0b6de580f Disallow non-namable types for inline arrays. 2020-05-26 18:17:35 +02:00
chriseth
50b200a5d5
Merge pull request #8797 from ethereum/sol-yul-populating-internal-dispatch-on-demand
[Sol->Yul] Populating internal dispatch on demand
2020-05-26 18:17:05 +02:00
Mathias Baumann
b3cafe4583 Fix ICE by avoiding copyForLocation() on ArraySliceType 2020-05-26 17:27:46 +02:00
Kamil Śliwak
1a2e441bc5 Generate internal dispatch only for functions that might actually get called via pointers
- This also adds support for internal library calls as a side-effect since they'll now be pulled into the internal dispatch automatically.
2020-05-26 17:01:50 +02:00
chriseth
33450619b1 Checks for uninitialized access to calldata variables. 2020-05-26 10:51:13 +02:00
chriseth
fb40a8abb8 Test updates. 2020-05-26 10:51:13 +02:00
chriseth
99194b1450 New tests. 2020-05-26 10:51:13 +02:00
chriseth
370350da07
Merge pull request #9008 from ethereum/smt_add_test
[SMTChecker] Add test that has an unused mapping
2020-05-25 17:04:54 +02:00
chriseth
6d64095ccf
Merge pull request #8987 from ethereum/sol-yul-bound-functions
[Sol->Yul] Bound functions
2020-05-25 16:53:33 +02:00
Mathias Baumann
d45bb2aa07 Add proper unipmlemented errors for array copying 2020-05-25 10:48:42 +02:00
Leonardo Alt
0fda5fe077 [SMTChecker] Add test that has an unused mapping 2020-05-25 10:24:48 +02:00
Kamil Śliwak
4a2ce57bed Add support for bound function calls in IR generator 2020-05-20 21:10:20 +02:00
hrkrshnn
37257548d0 Fixed bug when two empty NatSpec comments led to scanning past EOL 2020-05-20 20:26:02 +05:30
Leonardo Alt
45eba27424 Rename namespace 2020-05-20 12:55:18 +02:00
Leonardo Alt
087605ea02 Create libsmtutil 2020-05-20 12:55:18 +02:00
chriseth
3c71412a47
Merge pull request #8988 from ethereum/isoltest_default_formatting
[isoltest] Improve parameter formatting.
2020-05-20 08:05:33 +02:00
Alexander Arlt
410986e00f [isoltest] Improve parameter formatting. 2020-05-19 19:13:39 -05:00
chriseth
22d5caa979
Merge pull request #8532 from aarlt/structured-docs-variables-aarlt
Allow NatSpec comments for state variables
2020-05-19 19:26:35 +02:00
Kamil Śliwak
16e80b7bcd Test case for internal dispatch with functions that have arguments that take up multiple slots 2020-05-19 18:02:14 +02:00
Alexander Arlt
af8bb5fb60 Allow natspec comments on state variables. 2020-05-19 11:01:52 -05:00
Erik Kundt
7d37ed4531 Adds structured docs for variable declarations.
- adds natspec generation for state variables.
- exports structured docs for state variables to JSON.
2020-05-19 11:01:52 -05:00
chriseth
f70ff0dfaa
Merge pull request #8977 from ethereum/mapping-type-error
Error when Mapping type in (non-local) storage is assigned to
2020-05-19 16:52:54 +02:00
Harikrishnan Mulackal
774edd4670 Error when Mapping type in (non-local) storage is assigned to 2020-05-19 19:12:38 +05:30
chriseth
3b27b4347c
Merge pull request #8916 from ethereum/smt_array_push_pop
[SMTChecker] Support array push/pop
2020-05-19 15:41:10 +02:00
chriseth
3211e22045
Merge pull request #8979 from ethereum/doc-json
[Trival] Test: Output JSON AST as array when it involves multiple sources
2020-05-19 15:29:24 +02:00
Djordje Mijovic
d235d0c166 [Sol->Yul] Implementing Byte array push() and pop() 2020-05-19 14:47:00 +02:00
Mathias Baumann
5a7217b90e Test: Output JSON AST as array when it involves multiple sources 2020-05-19 14:26:08 +02:00
Leonardo Alt
1ab6ad79d8 Update test expectation 2020-05-18 16:59:31 +02:00
Leonardo Alt
2435ab938c Add verification target for empty pop 2020-05-18 16:35:56 +02:00
Leonardo Alt
d4d26c02e4 Assume that push will not overflow 2020-05-18 16:35:56 +02:00
Leonardo Alt
07bb1952a7 Test updates 2020-05-14 23:32:30 +02:00
Leonardo Alt
a0c605aa85 [SMTChecker] Support array length 2020-05-14 23:32:29 +02:00
chriseth
7ef114db9a
Merge pull request #8841 from ethereum/sol_yul_ripemd160_ecrecover
[Sol - Yul] Add support for ripemd160 & ecrecover.
2020-05-14 18:43:55 +02:00
Alexander Arlt
91e9d54c71 [Sol - Yul] Add support for ripemd160 & ecrecover. 2020-05-14 10:44:39 -05:00
chriseth
b71a3f1f1d
Merge pull request #8939 from ethereum/updateZ3
Update z3 to version 4.8.8.
2020-05-14 16:36:49 +02:00
chriseth
1b86f27002
Merge pull request #8935 from ethereum/moveScopesIntoResolver
Move scopes into resolver.
2020-05-14 14:20:58 +02:00
Daniel Kirchner
0303902173 Update smt test expectations. 2020-05-14 14:12:01 +02:00
chriseth
e751a1c23d Move scopes into resolver. 2020-05-14 13:16:47 +02:00
Djordje Mijovic
472fb21ee0 [Sol->Yul] Enabling new bytes(n) 2020-05-14 12:55:14 +02:00
chriseth
504b8d29c9
Merge pull request #8907 from ethereum/licenseIdentifier
Check for SPDX license identifiers.
2020-05-14 01:21:24 +02:00
chriseth
1700bdc4ad
Merge pull request #8925 from ethereum/abiEncodeCalldataSlice
Allow abi encoding array slices without casting.
2020-05-13 18:55:16 +02:00
Daniel Kirchner
97296d8622 Allow ABI encoding for array slices without explicit casts. 2020-05-13 18:20:07 +02:00
Alexander Arlt
af44c05f1a Add new test. 2020-05-13 18:16:59 +02:00
Alexander Arlt
52b9a92ff8 Update existing tests. 2020-05-13 18:16:59 +02:00
chriseth
3872a1f000 Add support for SPDX license identifiers. 2020-05-13 18:16:59 +02:00
Mathias Baumann
820fdd9bf7 Escape backslashes when formatting 2020-05-13 17:08:37 +02:00
chriseth
e9446475bb
Merge pull request #8924 from ethereum/arraySliceBug
Fix array slice bug.
2020-05-13 16:06:28 +02:00
Daniel Kirchner
6f04664cfa Disallow array slicing for arrays with dyanmically encoded base types. 2020-05-13 15:52:22 +02:00
chriseth
aca700497c
Merge pull request #8903 from ethereum/exponentiation-bug
Fix exponentiation bug
2020-05-13 15:49:23 +02:00
Harikrishnan Mulackal
47e9a13e8a Fix exponentiation bug 2020-05-13 13:53:06 +05:30
chriseth
b2122d479f
Merge pull request #8915 from a3d4/partfix-5819-remove-erroroccurred-flag
Remove a dedicated error flag from DeclarationTypeChecker and other classes
2020-05-12 20:18:33 +02:00
a3d4
02d1f8c41a Remove a dedicated error flag from DeclarationTypeChecker 2020-05-12 18:13:17 +02:00
chriseth
901b421bb8
Merge pull request #8910 from ethereum/natspec-return-bug
Bug that ignored return tag when no other devdoc tags were present
2020-05-12 16:47:07 +02:00
Harikrishnan Mulackal
095e17f7f9 Bug that ignored return tag when no other devdoc tags were present 2020-05-12 20:05:22 +05:30
Harikrishnan Mulackal
c29d76f8f2 Test for function with value setting 2020-05-12 15:21:13 +05:30
Daniel Kirchner
c2f5a66a79 Implement .creationCode for Sol->Yul. 2020-05-11 18:51:51 +02:00
Daniel Kirchner
3fbde6e782
Merge pull request #8856 from ethereum/implicitConstructorCallvalueCheck
Implicit constructor callvalue check
2020-05-11 18:50:36 +02:00
Daniel Kirchner
79b217dfb3 Callvalue checks for implicit constructors. 2020-05-11 16:14:34 +02:00
chriseth
c0bf529236 Support bare calls. 2020-05-11 15:11:46 +02:00