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
Djordje Mijovic
8aa4568b10
[Sol->Yul] Implementing conversion from calldata slices to memory arrays.
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-12-14 22:21:37 +01:00
Djordje Mijovic
b99a74fb34
Implementing conversion from calldata slices to memory arrays.
2020-12-14 22:21:37 +01:00
Djordje Mijovic
0efd52a38e
Allowing implicit conversion from calldata slice to memory and storage array types.
2020-12-14 22:21:37 +01:00
hrkrshnn
f30c7cbac8
All explicit address conversions return a non-payable address
2020-12-14 18:41:27 +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
e1a95cfd42
Disallow conversions from literals to payable address
...
To get a payable address, one has to go through address. For example, `payable(address(0))`.
2020-12-14 16:55:48 +01:00
hrkrshnn
9bd778d728
Make msg.sender and tx.origin have type address
...
Previously both of them had type address payable. The idea is that anything that is not know to be
payable should be non-payable.
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
e1e1337aca
Move functions into anonymous namespace.
2020-12-14 14:18:03 +01: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
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
Alex Beregszaszi
bcaefb57b8
Add evmAssembly and evmRuntimeAssembly pointer in CompilerStack
...
This is a preparation for allowing those outputs to be served from the IR too
2020-12-11 14:53:29 +00:00
Alex Beregszaszi
98d8174d31
Simplify Compiler/CompilerContext by removing extra layers of indirection
2020-12-11 14:43:51 +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
Đ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
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
Alex Beregszaszi
7cd05bf603
Introduce block.chainid
2020-12-10 17:07:54 +00:00
Daniel Kirchner
c400c61fc3
Fix incorrect behaviour on clang 6.
2020-12-10 17:20:30 +01:00
chriseth
d0551b67d7
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-10 17:07:56 +01:00
Daniel Kirchner
7308abc084
Allow loading Z3 dynamically at runtime.
2020-12-10 16:47:47 +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 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
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
870fd24723
Merge pull request #9888 from ethereum/account-hash
...
Support address().codehash
2020-12-09 17:40:56 +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
d525a8bccb
Enable ABI coder v2 by default.
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
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
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
Martin Blicha
eb356735f6
[SMTChecker] Adding support for reporting values of structs in CEX in CHC engine.
2020-12-08 16:40:28 +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
Martin Blicha
0ebab439be
removing assert that is not always true
2020-12-08 12:27:59 +01:00
Djordje Mijovic
acb93f3a97
Disallowing usage of msg.data in receive() function.
2020-12-08 11:49:20 +01: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
chriseth
a3c5d37d02
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-07 17:13:48 +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
254119d146
Merge pull request #10506 from ethereum/superInLibs
...
Make super unavailable in libraries.
2020-12-07 14:36:42 +01:00
chriseth
251f722919
Group decoding function cases.
2020-12-07 14:14:54 +01:00
chriseth
b86c91d1a3
Make super unavailable in libraries.
2020-12-07 13:59:50 +01:00
chriseth
bff7254d9e
Fix merge conflict.
2020-12-07 13:30:09 +01:00
chriseth
329b8f2a60
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-07 13:04:14 +01:00
Alex Beregszaszi
1e2bfbd6b2
Enable the -Wextra-semi warning
2020-12-04 17:21:19 +01:00
chriseth
4be9b409de
Remove unary plus.
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
chriseth
d56a7bb89e
Merge pull request #10489 from ethereum/develop
...
Merge develop into breaking.
2020-12-03 18:11:12 +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
hrkrshnn
92ab32e532
Stricter explicit conversion between types.
...
A type can be converted to another if the conversion requires at most one of the following: sign,
width, kind (int, address, bytesXX, etc.) For example, the conversion `uint16(int8)` is now disallowed.
2020-12-03 16:49:53 +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
630fcc3a1d
Define a comparator for InternalDispatchMap to ensure deterministic ordering of dispatch functions
2020-12-01 16:53:54 +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
Alex Beregszaszi
d22434ee57
Change ABIEncoderV1 to not pad empty strings
2020-12-01 14:32:18 +00: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
6d1454fce6
Disallow conversion to super.
2020-12-01 14:15:50 +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
28e01202af
[Sol->Yul] Fixing coping from storage to storage.
2020-12-01 08:50:33 +01:00
Mathias Baumann
f8e6f4a4eb
Use annotation.calledDirectly to simplify IR codegen
2020-11-30 18:54:42 +01:00
Mathias Baumann
c3da529a18
Mark expressions that are called directly in the annotations
2020-11-30 18:52:50 +01:00
Leonardo Alt
fa561dbd0e
Add uncovered test and replace uncovered tests by asserts
2020-11-30 18:46:47 +01:00
Martin Blicha
cd06d68cbe
[SMTChecker] Keeping better track of path condition through branches with return statement in the BMC engine.
2020-11-30 11:47:49 +01:00
Alex Beregszaszi
28e65bac46
Add unimplemented assert for modifiers in the IR
...
Also improved relevant tests for modifiers to be more strict and detect if the modifier body was skipped.
2020-11-27 18:34:17 +00:00
chriseth
3e5396598b
Merge pull request #10410 from ethereum/ir-fixedbytes-bitnot
...
Support BitNot on FixedBytes in IR
2020-11-26 14:42:52 +01:00
Alex Beregszaszi
cbae5ca324
Support BitNot on FixedBytes in IR
2020-11-26 13:20:02 +00:00
Djordje Mijovic
26d454d8a8
Using auto to avoid type name duplication.
2020-11-26 12:13:32 +01:00
Djordje Mijovic
565d0cd4eb
Support copying of nested calldata arrays to memory.
2020-11-26 12:13:29 +01:00
chriseth
18de8a56c9
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-26 11:48:53 +01:00
Djordje Mijovic
bae32ac402
[Sol->Yul] Implementing member access to arrays in calldata structs.
2020-11-26 11:46:31 +01:00
Alex Beregszaszi
a22077f736
Rename AsmData -> AST
...
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
Alex Beregszaszi
8d9c332593
Properly terminate definitions using define() in IRGenerateForStatements
...
The lack of termination can result in unparseable output.
2020-11-25 16:41:39 +00:00
Alex Beregszaszi
3bce2a2294
Remove the legacy AST JSON output
2020-11-25 11:40:33 +00:00
hrkrshnn
1a6f0fe52f
Disallow declarations to have names "this", "super" and "_".
...
There will be a declaration error 3726 if these names are used in the contract. Note that there is
an existing warning about shadowing a built-in for "this" and "super".
2020-11-25 11:14:13 +01:00
chriseth
f02bc817af
Merge pull request #10388 from ethereum/forwardRevertOnCreate
...
[Sol->Yul] Forward failure for creation.
2020-11-25 10:39:54 +01:00
chriseth
bdc571cfb6
Merge pull request #10385 from ethereum/activateStructCopyingOldCodegen
...
Support copying dynamically encoded structs from calldata to memory.
2020-11-25 10:07:13 +01:00
Djordje Mijovic
200227ab75
Support copying dynamically encoded structs from calldata to memory.
2020-11-24 20:36:17 +01:00
chriseth
cedb56ed81
Forward failure for creation.
2020-11-24 19:54:18 +01:00
Djordje Mijovic
26c43cfc66
[SMTChecker] Fix SMT logic error when doing compound assignment with string literlas.
2020-11-24 19:14:15 +01:00
chriseth
253889cbf1
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-24 16:22:03 +01:00
chriseth
2d235bf7b0
Merge pull request #10341 from ethereum/optimizeAllocation
...
Do not allocate memory objects if they will be assigned directly.
2020-11-24 16:05:46 +01:00
chriseth
409e92580f
Do not allocate memory objects if they will be assigned directly.
2020-11-24 14:11:01 +01:00
Djordje Mijovic
eea6513b5d
[Sol->Yul] Implementing copying dynamically encoded structs from calldata to memory
...
Co-authored-by: Leonardo <leo@ethereum.org>
2020-11-23 23:22:34 +01:00
Leonardo
61425e3541
Merge pull request #10378 from ethereum/smt_fix_spellcheck
...
Fix spelling in SMTChecker comment
2020-11-23 18:14:58 -01:00
chriseth
ee657f5361
Merge pull request #10214 from ethereum/fallbackReturn
...
Allow fallback function to return data.
2020-11-23 19:49:59 +01:00
Leonardo Alt
68cfa0a901
Fix spelling in SMTChecker comment
2020-11-23 19:40:29 +01:00
chriseth
a0a02f2307
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-23 19:28:08 +01:00
chriseth
91c88a5f6b
Merge pull request #10346 from ethereum/boundFunctions
...
[Sol->Yul] Bound functions.
2020-11-23 19:09:20 +01:00
chriseth
f87edb6efc
Bound functions.
2020-11-23 18:58:23 +01:00
Martin Blicha
66125b79d6
[SMTChecker] Do not report warning when encountered a Type identifier. The operations are supported now.
2020-11-23 15:41:57 +01:00
chriseth
f313668ef1
Merge pull request #10211 from ethereum/copyArrayCalldata2MemSol2Yul
...
[Sol->Yul] Copying arrays from calldata to memory
2020-11-23 15:02:18 +01:00
Djordje Mijovic
53a4b4a622
[Sol->Yul] Implementing copying of calldata arrays to memory
2020-11-23 14:52:55 +01:00
Djordje Mijovic
4bff99a518
Adding additional abi decoding functions for arrays.
...
Co-authored-by: chriseth <chris@ethereum.org>
2020-11-23 14:52:51 +01:00
chriseth
67ec5f6b17
Override semantics for fallback function.
2020-11-23 14:22:37 +01:00
chriseth
fda352094f
Allow fallback function to return data.
2020-11-23 14:22:37 +01:00
Martin Blicha
80d743426f
[SMTChecker] Added support for struct constructor.
2020-11-23 13:45:17 +01:00
Leonardo
61069ec77d
Merge pull request #10355 from blishko/smtchecker-refactoring
...
[SMTChecker] Small refactoring of assignments to provide a common low-level point for model checking engines to hook into.
2020-11-20 14:31:32 -01:00
Leonardo
ae8f484ed4
Merge pull request #10234 from ethereum/smt_named_arguments
...
[SMTChecker] Support named arguments in function calls
2020-11-20 12:24:51 -01:00
Leonardo Alt
e4339b0526
[SMTChecker] Support named arguments in function calls
2020-11-20 11:52:26 -01:00
Alex Beregszaszi
82997fbf5e
Change AST::interfaceId() to uint32_t
2020-11-19 23:33:08 +00:00
Martin Blicha
fbcb572d69
[SMTChecker] Small refactoring of assignments to provide a common low-level point for model checker engines to hook into.
2020-11-19 22:03:08 +01:00
chriseth
f1d28b1d17
Fix string literal assignment to storage.
2020-11-19 15:27:21 +01:00
chriseth
7f0cc433be
Fix mapping conversion.
2020-11-18 20:20:25 +01:00
chriseth
a7db4fa4a5
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-18 20:05:02 +01:00
Kamil Śliwak
5560239cf5
Replace links to readthedocs.io with ones using the new domain
2020-11-18 15:20:34 +01:00
chriseth
1508b08f3e
Implement inline assembly access to constants.
2020-11-18 12:35:23 +01:00
chriseth
9f0a631948
Merge pull request #10208 from ethereum/offsetLengthCalldata
...
Support .offset and .length for dynamic calldata arrays
2020-11-18 12:09:11 +01:00
chriseth
2665eaa4fa
Support .offset and .length for calldata bytes and string arrays.
2020-11-18 01:45:56 +01:00
Kamil Śliwak
dfa0a0cdff
IR codegen: Handle address() with library type argument and external library calls
2020-11-17 20:36:39 +01:00
chriseth
691f7e6eae
Fix merge conflicts.
2020-11-17 19:59:23 +01:00
chriseth
e8a278eefa
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-17 18:51:57 +01:00
chriseth
049c7f7a8e
Disallow using modifiers not in the current contract or in base contracts.
2020-11-17 18:33:45 +01:00
chriseth
e64fd99fb5
Fix qualified modifier lookup.
2020-11-17 18:33:45 +01:00
Kamil Śliwak
4174f38b02
StandardCompiler: Include file names in link references
2020-11-17 17:51:04 +01:00
chriseth
74ce8d6979
Fix assignment to non-lvalue storage values.
2020-11-17 15:56:34 +01:00
chriseth
df53b53aa5
Merge pull request #10315 from ethereum/fixToStorageCopy
...
[SolYul] Fix bug in array to storage copy routine.
2020-11-17 15:56:21 +01:00
chriseth
fffd0306f5
Fix bug in array to storage copy routine.
2020-11-17 14:56:44 +01:00
chriseth
bb97363abf
Merge pull request #9989 from ethereum/issue-9947
...
Natspec: Fix internal error when different return name was inherited
2020-11-17 13:54:03 +01:00
Mathias Baumann
559b27aaad
Natspec: Fix internal error when different return name was inherited
2020-11-17 11:56:32 +01:00
chriseth
adaf1ff7df
Merge pull request #10272 from ethereum/storageStorageCopyForStructs
...
Storage storage copy for structs
2020-11-17 11:47:48 +01:00
Leonardo
65c2089b43
Merge pull request #10310 from blishko/issue-10306
...
[SMTChecker] Adding a dummy frame to the call stack for the implicit constructor
2020-11-17 09:34:49 -01:00