Commit Graph

4155 Commits

Author SHA1 Message Date
Leonardo Alt
f2f84a7f97 Format array cex 2020-10-27 16:32:43 +00:00
Leonardo Alt
446e46fe06 Use Expression instead of plain strings for counterexamples 2020-10-27 12:04:51 +00:00
Leonardo Alt
4755cfe157 Fix assignment to contract member access 2020-10-26 14:39:02 +00:00
Leonardo Alt
d3d77e482c Fix ICE on conditions with tuples of rationals 2020-10-23 14:47:53 +01:00
Martin Blicha
ade3b9951c [SMTChecker] Added support for selector when expression's value is known at compile time 2020-10-22 14:18:52 +02:00
Leonardo Alt
b087fa9750 [SMTChecker] Fix ICE implicit conversion string literal -> byte 2020-10-21 22:03:01 +01:00
Martin Blicha
f0d81601db [SMTChecker] Adding division by zero checks in the CHC engine 2020-10-21 14:48:33 +02:00
chriseth
a83ad58109
Merge pull request #10081 from ethereum/maskBytes
Extract mask bytes function.
2020-10-21 10:09:40 +02:00
chriseth
3920f398aa
Update libsolidity/codegen/YulUtilFunctions.h
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-10-21 09:48:22 +02:00
chriseth
53d6721e47 Extract mask bytes function. 2020-10-20 17:36:46 +02:00
Mathias Baumann
a4dc110b38 Fix dependency tracking for abstract contracts for Yul codegen 2020-10-20 16:58:24 +02:00
Mathias Baumann
e991465336 Fix dependency tracking for abstract contracts 2020-10-20 16:58:24 +02:00
Leonardo Alt
cf35785328 Add unknown message to all verification targets 2020-10-19 20:54:13 +01:00
Leonardo Alt
b67ade5163 Move modelCheckerSettings out of settings in StandardCompiler 2020-10-19 10:39:06 +01:00
Daniel Kirchner
909ce9164a Allow arrays of contract types as type expressions e.g. for abi.decode. 2020-10-16 19:40:41 +02:00
Daniel Kirchner
db4dd51739
Merge pull request #10055 from ethereum/userDefinedLibraryTypes
Disallow invalid use of library names as type names.
2020-10-16 18:55:42 +02:00
Daniel Kirchner
3f14c904b0 Disallow invalid use of library names as type names. 2020-10-16 18:25:08 +02:00
Leonardo
a097f9f124
Merge pull request #10025 from ethereum/smt_crypto_functions
[SMTChecker] Support crypto functions in CHC
2020-10-16 16:40:29 +01:00
Leonardo
8d7bdcaba7
Merge pull request #10036 from ethereum/smt_cli_option
Add CLI option to choose model checker engine
2020-10-16 16:37:33 +01:00
Martin Blicha
78c8fbc7ce [SMTChecker] encoding division and modulo operations using slack variables 2020-10-16 16:06:31 +02:00
Leonardo Alt
4e49135318 Add CLI option to choose model checker engine 2020-10-16 15:01:47 +01:00
Leonardo Alt
54f76e081a [SMTChecker] Support crypto functions in CHC 2020-10-16 14:57:13 +01:00
Djordje Mijovic
5f0b8dd716 [Sol->Yul] Changing yul unimplemented test as delete bytes is implemented now. 2020-10-15 22:05:40 +02:00
Djordje Mijovic
4a66723ff9 [Sol->Yul] Implementing resizing of dynamic byte arrays
Co-authored-by: chriseth <chris@ethereum.org>
2020-10-15 22:05:35 +02:00
chriseth
c9ed1b9ae9
Merge pull request #10047 from ethereum/removeMemoryGuards
Disable StackLimitEvader again until we have stronger correctness guarantees.
2020-10-15 18:56:33 +02:00
chriseth
89bdad2096
Merge pull request #10043 from ethereum/emptyArrayCopy
Fix empty array copy bug.
2020-10-15 17:07:54 +02:00
chriseth
38abadf502 Fix empty array copy bug. 2020-10-15 16:48:08 +02:00
Daniel Kirchner
82876fd00e Disable StackLimitEvader again until we have stronger correctness guarantees. 2020-10-15 16:16:41 +02:00
chriseth
e17d6853a9
Merge pull request #9985 from ethereum/optimizeDeleteStructSol2Yul
[Sol->Yul] Optimizing delete struct.
2020-10-15 16:03:06 +02:00
Daniel Kirchner
20072918d9 Make sure lValueOfOrdinaryAssignment does not have an undefined value. 2020-10-14 21:00:18 +02:00
Djordje Mijovic
6f7947cfa5 [Sol->Yul] Optimizing delete struct.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-10-14 13:35:15 +02:00
chriseth
25b10b9643
Merge pull request #10028 from ethereum/useArrayLength
Use array length function.
2020-10-14 13:35:09 +02:00
chriseth
92a2cddbfa
Merge pull request #10024 from ethereum/outofBoundsGetter
Use revert for out-of-bounds array index access in getter.
2020-10-14 12:33:41 +02:00
chriseth
a737e51533 Use array length function. 2020-10-14 12:22:34 +02:00
chriseth
56d6855222
Merge pull request #9738 from ethereum/arrayCopyingSol2Yul
[Sol->Yul] Implementing copying of arrays to storage
2020-10-14 12:22:09 +02:00
chriseth
8d241fece9
Merge pull request #9849 from ethereum/fixIce9817
Fixing ICE on returning struct with mapping from library
2020-10-14 00:05:19 +02:00
Leonardo Alt
440e5b3935 [SMTChecker] Fix counterexample state reporting 2020-10-13 22:18:43 +01:00
Djordje Mijovic
850a94bdc9 [Sol->Yul] Implementing arrays copying to storage.
Co-authored-by: chriseth <chris@ethereum.org>
2020-10-13 20:31:08 +02:00
Djordje Mijovic
1272c474ba Fixing ICE when returning Struct from library 2020-10-13 20:00:11 +02:00
chriseth
5dc3a971cb Use revert for out-of-bounds array index access in getter. 2020-10-13 18:57:41 +02:00
Leonardo Alt
aec456021d Add tx constraints to CHC 2020-10-13 17:49:04 +01:00
Leonardo Alt
a2cdde1191 Add tx data to symbolic state 2020-10-13 17:49:04 +01:00
Leonardo
8fd6de9403
Merge pull request #10014 from ethereum/smt_fix_predicagte
[SMTChecker] Fix implicit constructor summary predicate
2020-10-13 14:55:52 +01:00
Mathias Baumann
32b4f18023 Print warning for unnamed return parameters and no return statement 2020-10-13 13:11:29 +02:00
Leonardo Alt
1e568d7dc6 [SMTChecker] Fix implicit constructor summary predicate 2020-10-13 09:38:58 +01:00
chriseth
abfa136afb
Merge pull request #10012 from ethereum/extractSelectorFunction
Extract function to compute function selector from signature.
2020-10-12 20:32:05 +02:00
chriseth
4b342a7cad
Merge pull request #9816 from ethereum/exp-base-literals
[Sol->Yul] Optimization for exponentiation when the base is a literal
2020-10-12 19:34:38 +02:00
Harikrishnan Mulackal
418aa01c5b Optimization for exponentiation when the base is a literal 2020-10-12 18:54:58 +02:00
chriseth
cb0d1134b7 Extract function to compute function selector from signature. 2020-10-12 17:57:34 +02:00
Djordje Mijovic
e23d8f5593 [SMTChecker] Supporting inline arrays. 2020-10-12 16:59:14 +02:00
Kamil Śliwak
e1cc888369 Fix checkBaseABICompatibility() to make it actually check return parameters and not just ordinary parameters twice 2020-10-12 15:14:56 +02:00
Kamil Śliwak
3128e82a9a Look for experimental pragmas in the module containing the definition when generating code for modifiers and inherited functions 2020-10-12 14:29:53 +02:00
chriseth
1a125cf755
Merge pull request #10006 from ethereum/bug-9229-fix
Fixes internal compiler error with an unused reference to module member.
2020-10-12 13:43:35 +02:00
Leonardo Alt
18cf01c187 Add this and state to CHC 2020-10-12 11:11:52 +01:00
Leonardo Alt
a86f656704 Refactor state as tuple 2020-10-12 11:11:52 +01:00
Christian Parpart
712d0805eb Fixes internal compiler error with an unused reference to module member. 2020-10-12 11:56:01 +02:00
chriseth
3739b03af6
Merge pull request #9877 from a3d4/fix-homonymous-declarations-warnings
Fix shadowing/same-name warnings for later declarations
2020-10-08 22:27:15 +02:00
a3d4
90c8c32d86 If a declaration shadows several others, group them together 2020-10-08 21:01:25 +02:00
chriseth
ca86eacfb2 Remove traces of errors due to shifts by negative amounts. 2020-10-08 20:24:53 +02:00
a3d4
f29ebc0847 Fix shadowing/same-name warnings for later declarations 2020-10-08 20:22:04 +02:00
chriseth
2d1bd03a98
Merge pull request #9994 from ethereum/revertOnFailingReadFromCalldata
Revert on failing read from calldata.
2020-10-08 20:11:45 +02:00
chriseth
3970c4e57d
Merge pull request #9892 from ethereum/constantsAtFileLevel
Constants at file-level.
2020-10-08 19:53:33 +02:00
chriseth
8b96d17cb5 Revert on failing read from calldata. 2020-10-08 19:43:16 +02:00
chriseth
f8d5c4db36
Merge pull request #9843 from ethereum/deleteStructSol2Yul
[Sol->Yul] Implementing delete struct
2020-10-08 19:08:40 +02:00
chriseth
b2be8e1c0f Fix module member access. 2020-10-08 18:56:17 +02:00
chriseth
346fe1c6c5 Constants at file-level. 2020-10-08 18:56:17 +02:00
chriseth
21dee1c8ba Check for circular constants across contracts. 2020-10-08 18:56:17 +02:00
chriseth
2d9479b06c Properly set scope. 2020-10-08 18:56:17 +02:00
chriseth
b5a08f8641
Merge pull request #9958 from a3d4/fix-ice-storage-parameters-in-libraries
Fix ICE caused by storage parameters with nested mappings in libraries
2020-10-08 17:17:09 +02:00
Djordje Mijovic
ad8d840ee7 [Sol->Yul] Implementing conversion of struct to struct pointer.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-10-08 16:37:57 +02:00
Djordje Mijovic
700390a68b [Sol->Yul] Implementing deleting storage structs 2020-10-08 15:27:33 +02:00
Djordje Mijovic
3ede1f1bca Adding support for recursive functions in MultiUseYulFunctionCollector 2020-10-08 15:27:33 +02:00
chriseth
fd6196af16 Copying of arrays from storage to memory. 2020-10-08 15:16:13 +02:00
a3d4
d7b4b4a7aa Fix ICE caused by storage parameters with nested mappings in libraries 2020-10-07 22:07:57 +02:00
Mathias Baumann
6114cd8e8e Add missing annotation assignments 2020-10-07 14:52:35 +02:00
Christian Parpart
99d48348de Eliminate dead ASTReduce. 2020-10-07 13:38:46 +02:00
Christian Parpart
04079bff6f Eliminates dead code around GasEstimator
- structuralEstimation()
- breakToStatementLevel()
2020-10-07 13:31:40 +02:00
chriseth
431397eddf
Merge pull request #9943 from ethereum/array-cleanup
Array cleanup
2020-10-07 11:53:06 +02:00
Kamil Śliwak
33ff79bf82 Add missing checks for parameter compatibilty with ABIEncoderV1 in calls 2020-10-06 21:28:46 +02:00
chriseth
25d408058b
Merge pull request #9954 from ethereum/issue-9948
Remove unneeded assert
2020-10-06 16:50:14 +02:00
Harikrishnan Mulackal
1bdbc10110 Properly cleanup after copying dynamic-array to storage for packed types 2020-10-06 16:06:02 +02:00
Djordje Mijovic
818afcbec2 [Sol->Yul] Implementing push for nested storage arrays and storage arrays of structs. 2020-10-06 13:06:40 +02:00
Mathias Baumann
6af16469e7 Remove unneeded assert
An error will trigger later in the name resolve phase
2020-10-05 13:01:11 +02:00
Alex Beregszaszi
7417965ae3
Merge pull request #9945 from ethereum/fix-storage-typo
Fix typo: storage
2020-10-02 13:25:27 +01:00
Harikrishnan Mulackal
7773bb3bd0 Fix typo: storage 2020-10-02 11:44:10 +02:00
Alex Beregszaszi
fedbea46cd [SMTChecker] Support type conversions 2020-10-02 10:26:02 +02:00
Leonardo
87e1934bee
Merge pull request #9885 from ethereum/smt_array_slices
[SMTChecker] Support array slices
2020-10-01 18:12:57 +02:00
chriseth
e5771efdf8
Merge pull request #9905 from ethereum/deleteArrayPackedSol2Yul
[Sol->Yul] Implementing deleting of storage array of types that are packed in storage
2020-10-01 16:50:57 +02:00
Leonardo Alt
c8cc73c80c Support array slices 2020-10-01 11:52:02 +02:00
Djordje Mijovic
aa23ebc8e6 [Sol->Yul] Implementing array resizing for packed array types. 2020-10-01 10:25:00 +02:00
chriseth
3af21c92d2
Merge pull request #9702 from a3d4/fix-7410-arrays-of-mappings
Fix ICE caused by an array of mappings
2020-09-30 20:24:09 +02:00
chriseth
fda8bde2d7 Stop after parsing. 2020-09-30 16:57:49 +02:00
Harikrishnan Mulackal
fd02ccc68c Implemented events with indexed function as parameter in Yul 2020-09-30 12:11:39 +02:00
Harikrishnan Mulackal
3970412422 Implemented events with function type as one of its indexed parameters 2020-09-30 12:11:38 +02:00
a3d4
3c876fcb60 Fix ICE caused by an array of mappings 2020-09-29 18:17:46 +02:00
chriseth
2037b7d6b8
Merge pull request #9820 from ethereum/new-annotation-field-virtual
Add annotation field ``requiresVirtualLookup``
2020-09-29 15:33:54 +02:00
Leonardo Alt
352cce5fc8 [SMTChecker] Support addmod and mulmod. 2020-09-29 12:45:19 +02:00
Leonardo
7540ae4b3a
Merge pull request #9777 from ethereum/smt_refactor_predicate_instances
[SMTChecker] Refactor CHC predicate instances
2020-09-29 10:35:37 +02:00
Harikrishnan Mulackal
d23aff4cbb
Merge pull request #9918 from ethereum/isStateScopeCheck
Make isStateVariable regular scope check.
2020-09-29 09:33:03 +02:00
chriseth
cb82d8239c Make isStateVariable regular scope check. 2020-09-28 19:31:54 +02:00