Kamil Śliwak
d96cc3469a
FunctionDefinition.resolveVirtual(): Skip unimplemented functions when lookup happens via super
2021-06-02 16:16:15 +02:00
Kamil Śliwak
67e87147b4
Extra asserts, test renaming, test for super in modifiers
2021-06-02 16:15:51 +02:00
Kamil Śliwak
3c7112ed2b
Remove the assertion against functions bound to types for which should not be possible
...
- The list was wrong - we do support string and int literals
- The assertion was meant to guard against silently skipping over types for which there is no special handling. The current code handles everything in a generic way though and likely will not have to be adjusted for newly added types so the risk of that happening is low.
2021-06-02 13:59:42 +02:00
chriseth
4cbf9ff74c
Merge pull request #10143 from ethereum/issue-10084
...
ControlFlowAnalyser: Also consider called functions in a flow
2021-06-01 19:34:56 +02:00
Leo Alt
bf21cd400c
Fix conversion from bytes to fixed bytes
2021-06-01 17:55:18 +02:00
Mathias Baumann
56ebea8b2f
ControlFlowAnalyser: Also consider called functions in a flow
2021-06-01 15:54:37 +02:00
Leo Alt
547a6915ad
Fix ICE on external calls from constructor
2021-06-01 14:21:48 +02:00
chriseth
0623658ddd
Properly set source location of bare blocks.
2021-05-31 18:28:17 +02:00
Alex Beregszaszi
7eed8b69e9
Merge pull request #11459 from ethereum/yulFixedPointTypesAssertions
...
[Sol->Yul] Adding assertion in order to give better error messages for fixed point types
2021-05-31 15:32:14 +01:00
Djordje Mijovic
17eaa11657
[Sol->Yul] Adding assertion in order to give better error messages for fixed point types.
2021-05-31 15:54:37 +02:00
chriseth
3dfa68a574
Merge pull request #11456 from ethereum/ice-abstract-contract-mapping-constructor
...
Fix ICE related to mapping types in abstract contract constructor
2021-05-31 15:35:26 +02:00
hrkrshnn
138873d918
Fix ICE related to mapping types in abstract contract constructor
2021-05-31 14:56:49 +02:00
chriseth
6dd5bcd3f0
Merge pull request #11454 from ethereum/data-location-error
...
Error message: try-catch parameter cannot be in storage.
2021-05-31 14:31:01 +02:00
hrkrshnn
f582d48f7b
Error message: try-catch parameter cannot be in storage.
2021-05-31 11:25:08 +02:00
chriseth
29a995b937
Merge pull request #11433 from ethereum/panic-dedup
...
Insert a call to panic function in legacy codegen (and not inline it every single time)
2021-05-31 11:23:30 +02:00
Alex Beregszaszi
c436785686
Insert a call to panic function in legacy codegen (and not inline it every single time)
2021-05-27 18:29:46 +01:00
chriseth
d305c219d8
Fix namespace styles.
2021-05-27 17:41:04 +02:00
Leo Alt
f7b045b886
review
2021-05-26 22:12:49 +02:00
Leo Alt
95f973e08a
Fix gasleft variable name
2021-05-26 22:12:49 +02:00
Leo Alt
daea5f886d
Fix CHCSmtLib2Interface
2021-05-26 22:12:49 +02:00
Alex Beregszaszi
bf2c82adca
Document the panic function of library deployment
2021-05-26 15:51:46 +01:00
Alex Beregszaszi
75c72cd54d
Properly support inliner in settings.optimizer.details
2021-05-20 20:22:34 +01:00
Alex Beregszaszi
d61f21276d
Merge pull request #11399 from ethereum/hex-conversion
...
Turn toCompactHexWithPrefix into a template and support unsigned types
2021-05-18 11:36:43 +01:00
Martin Blicha
9c98ab59f0
SMTChecker: fixed struct constructor where FixedBytes member is initialized with a string literal
2021-05-17 13:52:37 +02:00
Alex Beregszaszi
6dae6583af
Turn toCompactHexWithPrefix into a template and support unsigned types
...
This should help with boost::multiprecision versions where explicit unsigned/enum conversion to bigint do not exists (such as boost 1.76)
2021-05-15 23:33:29 +01:00
Leonardo Alt
4b2ccf2f37
Abstract function smtchecker natspec
2021-05-11 15:30:19 +02:00
Leo Alt
e2959ce55c
Assign cast from constants directly
2021-05-11 14:07:09 +02:00
Bhargava Shastry
a0795cbc98
Use a local instead of a temporary as an argument to valueOrDefault
2021-05-10 11:36:39 +02:00
Daniel Kirchner
6104ac1cdf
Remove more imports of ranges namespace.
2021-05-07 15:42:17 +02:00
Daniel Kirchner
c69add1682
Remove import of ranges namespace.
2021-05-07 13:44:14 +02:00
chriseth
518629a8f6
Merge pull request #10768 from ethereum/copyLiteralToStorageSol2Yul
...
[Sol->Yul] Adding util function to copy literal to storage.
2021-05-06 10:44:39 +02:00
Djordje Mijovic
f0c5cdca9f
[Sol->Yul] Adding util function to copy literal to storage.
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
Co-authored-by: chriseth <chris@ethereum.org>
2021-05-05 11:33:03 +02:00
chriseth
72fc4d4a32
Introduce ceil division helper function.
2021-05-05 11:12:10 +02:00
chriseth
9d156b52c4
Merge pull request #8868 from ethereum/functionEntryPoints
...
Note function entry points.
2021-05-05 11:08:44 +02:00
Djordje Mijovic
3e5f5fccf9
[Sol->Yul] Adding cleanUpArrayEnd util function.
...
Co-authored-by: chriseth <chris@ethereum.org>
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-05-05 08:53:34 +02:00
chriseth
f9c94d7c42
Note function entry points.
2021-05-04 17:15:13 +02:00
chriseth
faca036837
Merge pull request #11294 from ethereum/yulAstDebugDataRefactor
...
Removing location in favor of debugData in yul AST structures
2021-05-04 17:05:40 +02:00
Djordje Mijovic
e404b6e7a6
Refactoring yul source locations.
2021-05-04 16:05:23 +02:00
chriseth
62355aead3
Respect memory model for revert.
2021-05-03 18:23:41 +02:00
Leonardo
fe4822a1d2
Merge pull request #11333 from ethereum/smt_fix_free_functions
...
[SMTChecker] Fix ICE in free functions
2021-05-03 14:59:00 +02:00
chriseth
d721bbe504
Respect memory model in forwarding revert inside catch.
2021-05-03 12:19:46 +02:00
Leo Alt
1642c10f6e
Fix ICE in free functions
2021-05-03 10:57:11 +02:00
chriseth
79acebe46f
Allocate for returning runtime code.
2021-04-29 16:40:51 +02:00
chriseth
b06a09fd82
Fix forwarding revert.
2021-04-29 14:58:10 +02:00
Kamil Śliwak
5023cef382
OptimiserSettings: Add preset() and OptimisationPreset enum
2021-04-27 14:06:44 +02:00
chriseth
f72592549b
Merge pull request #11110 from ethereum/issue_10475_isoltest_external_sources
...
[isoltest] Add support for external sources.
2021-04-27 10:54:39 +02:00
Alex Beregszaszi
9d5b4150d4
Throw StackTooDeep earlier (with sourcelocatiom) for inline assembly issues
2021-04-26 20:11:50 +01:00
Alexander Arlt
481971cbcf
[isoltest] Add support for external sources.
2021-04-26 08:27:30 -05:00
Mathias Baumann
5f313ee52a
ControlFlowAnalyzer: Use temporary reference for more readable code
2021-04-26 13:24:17 +02:00
chriseth
659da4bdc7
Merge pull request #11047 from ethereum/bytesToBytesNNConversion
...
Bytes to bytesNN conversion
2021-04-26 11:51:41 +02:00
Alex Beregszaszi
e39433198d
Remove the usage of boost::noncopyable
...
Prior to this half of the codebase used explicit deleted copy constructors, the others used boost::noncopyable.
2021-04-23 14:57:01 +01:00
Djordje Mijovic
cbb7e53b22
Activating bytes to bytesNN for legacy codegen by calling yul util function.
2021-04-23 13:30:19 +02:00
Djordje Mijovic
52538558b1
[Sol->Yul] Implementing bytes to bytesNN for IR codegen.
...
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2021-04-23 13:30:15 +02:00
Djordje Mijovic
b40c3bcc32
Allowing conversion from bytes to bytesNN in type checker.
2021-04-23 13:19:19 +02:00
hrkrshnn
1f5b874eaf
Optimizer context has parameter expectedExecutionsPerDeployment
2021-04-22 17:27:57 +02:00
Đorđe Mijović
8840fb6ffd
Merge pull request #11270 from ethereum/addingBoundsByteArraySolYul
2021-04-22 15:41:32 +02:00
Alex Beregszaszi
4855fca802
Remove dead code in NatSpec
2021-04-22 13:26:11 +01:00
Djordje Mijovic
3a4233f3ad
[Sol->Yul] Adding bounds check when increasing size of byte array.
2021-04-22 11:42:46 +02:00
Leonardo
7bbf3a694b
Merge pull request #11261 from ethereum/smt_choose_target
...
[SMTChecker] Add option to choose contracts to be analyzed
2021-04-21 13:11:33 +02:00
Djordje Mijovic
0dd59fa0a2
[Sol->Yul] Remove index access from byte array pop function to optimize it.
2021-04-21 11:01:18 +02:00
Leonardo Alt
dd1865873e
Choose contracts to be analyzed by the SMTChecker
2021-04-21 10:34:14 +02:00
chriseth
cf7f814a4e
Merge pull request #10921 from ethereum/issue-10881
...
Natspec: Don't copy from base function if return parameters differ
2021-04-20 15:33:48 +02:00
Leonardo Alt
095d337140
Basic support to free constants
2021-04-19 19:23:18 +02:00
Leonardo Alt
4e34359063
Basic support to free functions
2021-04-19 19:23:18 +02:00
Leonardo Alt
e3abde43f5
Change settings.modelChecker.targets to take an array instead of string
2021-04-19 17:53:03 +02:00
Mathias Baumann
1737bd7ded
Natspec: Don't copy from base function if return parameters differ
2021-04-19 15:20:30 +02:00
chriseth
8eb0d5edf6
Export used errors in the AST.
2021-04-19 14:15:50 +02:00
Christian Parpart
81c7b30a6a
Merge pull request #11234 from ethereum/fix-file-reader-compiler-stack-source-unit-name-mismatch
...
Use identical source unit names in FileReader and CompilerStack
2021-04-14 13:46:14 +02:00
chriseth
11b227e33e
Merge pull request #11205 from ethereum/fix-docstring-bug
...
Fix docstring bug
2021-04-14 13:18:33 +02:00
Kamil Śliwak
0922d60ba6
FileReader: More accurate description of FileReader::readFile() and its arguments
2021-04-13 13:26:01 +02:00
Kamil Śliwak
6a41b417a3
FileReader: Store files loaded by the callback under their source unit name
2021-04-13 13:25:59 +02:00
chriseth
72d0a56a72
Fix array decoding offset overflow.
2021-04-12 13:43:51 +02:00
chriseth
32b8332867
Refactor array decoding.
2021-04-12 13:43:51 +02:00
Leonardo Alt
b753cb6120
Deprecate pragma experimental SMTChecker
2021-04-08 21:03:38 +02:00
chriseth
0cc0cabd30
Merge pull request #11224 from ethereum/lastAllocationUnbounded
...
Use unbounded allocation before returning.
2021-04-08 19:32:40 +02:00
Daniel Kirchner
96c8123b6b
Use unbounded allocation before returning.
2021-04-08 18:37:24 +02:00
hrkrshnn
b7795b86c1
Allow notice tag for non-public state variable.
...
This won't be part of NatSpec JSON, but will show up under documentation node in AST.
2021-04-08 17:06:14 +02:00
hrkrshnn
39e3da1905
Allow NatSpec documentation for local variable declarations
...
This won't be part of NatSpec JSON, but in AST, under the field documentation.
2021-04-08 17:06:14 +02:00
chriseth
6d6112a81b
Merge pull request #11210 from anurag-git/issue_10738-2
...
Use range-v3 loops(transform)
2021-04-08 14:56:15 +02:00
anurag4u80
b2ca7916aa
Replaced boost::adaptors::transformed
2021-04-08 17:38:14 +05:30
Christian Parpart
257672e56f
Extract file reading logic from CommandLineInterface into FileReader class.
2021-04-06 17:10:43 +02:00
Christian Parpart
3490577140
Extract import-file remapping logic out of CompilerStack into ImportRemapper.
2021-04-06 14:28:53 +02:00
Christian Parpart
30588a90eb
CompilerStack: assemblyString doesn't need to receive sourceCodes map as copy.
2021-04-06 14:28:01 +02:00
chriseth
98a8640928
Merge pull request #11203 from anurag-git/issue_10738-1
...
Use range-v3 loops (reverse, keys, values)
2021-04-01 12:19:40 +02:00
anurag4u80
bbcdddeed9
Replaced keys, values and reverse with ranges
2021-03-31 23:33:04 +05:30
Martin Blicha
330fb8f4d0
[SMTChecker] Assignment refactoring
2021-03-31 13:36:50 +02:00
Leonardo
78d94737a4
Merge pull request #11188 from blishko/issue-11181
...
[SMTChecker] Fix crash when analysing try-catch clauses with function call.
2021-03-31 11:24:36 +02:00
Mathias Baumann
e590a99f39
Detect circular references for library and free functions
2021-03-30 23:06:30 +02:00
chriseth
79d7466e19
NatSpec for errors.
2021-03-30 21:16:58 +02:00
chriseth
517cd17a6f
Add errors to the ABI.
2021-03-30 21:16:58 +02:00
chriseth
e877e2bba7
Use all referenced errors.
2021-03-30 21:15:46 +02:00
chriseth
1057fd5355
Take revert statement into account in control flow graph.
2021-03-30 21:15:46 +02:00
chriseth
d5669696d5
Code generation for errors.
2021-03-30 21:15:46 +02:00
chriseth
b552e5aeeb
AST import and export for revert statement.
2021-03-30 21:15:46 +02:00
chriseth
fb67051467
Revert statement.
2021-03-30 21:15:46 +02:00
chriseth
b04b189959
Syntax for custom errors.
2021-03-30 21:15:18 +02:00
Martin Blicha
2d231f1859
[SMTChecker] Changed SMTEncoder::mergeVariables to work regardless which branch has been visited first
2021-03-30 20:35:44 +02:00
Leonardo Alt
ba97d6ac4e
Add local vars to cex
2021-03-30 17:55:21 +02:00
Leonardo Alt
dbd067d6db
Report out of bounds index access
2021-03-30 10:28:48 +02:00
chriseth
bb49bc5892
Merge pull request #10418 from ethereum/function-specializer
...
Function specializer
2021-03-29 15:48:01 +02:00
hrkrshnn
45a3747701
Added FunctionSpecializer to the optimization suite
2021-03-29 11:02:18 +02:00
Leonardo Alt
d1db41a5c8
Fix target warning order nondeterminism
2021-03-26 12:13:52 +01:00
Martin Blicha
85358dfe30
[SMTChecker] Do not create targets for contracts that cannot be deployed
2021-03-25 15:38:37 +01:00
Leonardo
7e1be52281
Merge pull request #11165 from blishko/smt-abi-no-args
...
[SMTChecker] Fix ICE on ABI functions with no arguments
2021-03-25 15:21:57 +01:00
Alex Beregszaszi
e071884bbf
Show proper error for misusing the custom natspec tag
2021-03-25 12:45:37 +00:00
Martin Blicha
5293f05ee3
[SMTChecker] Fix ICE on ABI functions with no arguments
2021-03-25 13:28:29 +01:00
chriseth
4080748b1d
Merge pull request #11157 from ethereum/extractReferencedDeclaration
...
Extract referencedDeclaration as helper.
2021-03-25 11:02:20 +01:00
chriseth
99fcf62736
Extract referencedDeclaration as helper.
2021-03-24 17:01:50 +01:00
Martin Blicha
98446782e2
[SMTChecker] Fix compound assignment to push
2021-03-24 14:54:13 +01:00
Leonardo
13d3b35141
Merge pull request #11116 from blishko/issue-10985
...
[SMTChecker] Handle InaccessibleDynamicType
2021-03-24 14:39:24 +01:00
Martin Blicha
852e877ae7
[SMTChecker] Handle InaccessibleDynamicType
2021-03-24 11:53:06 +01:00
Djordje Mijovic
4e75c6c3e8
Implementing bytes.concat for legacy codegen.
2021-03-24 11:49:21 +01:00
Djordje Mijovic
80866d3ee4
[Sol->Yul] Implementing bytes.concat in IR codegen.
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-03-24 11:49:21 +01:00
Djordje Mijovic
840df80dac
Check if all types in bytes.concat are fixed bytes or byte array.
2021-03-24 11:49:21 +01:00
Djordje Mijovic
1493326e48
Adding bytes.concat function type.
2021-03-24 11:49:21 +01:00
chriseth
d15ba987d1
Fix AST output if modifier invocation is base constructor call.
2021-03-24 11:24:26 +01:00
Martin Blicha
e0b7c2c125
Fix compilation on develop
2021-03-24 09:40:02 +01:00
chriseth
e3ea5c631e
Merge pull request #11136 from ethereum/refactor-typepointer
...
Replace `TypePointer` with `Type const*`
2021-03-23 18:32:38 +01:00
Mathias Baumann
e197ebbdd1
Replace TypePointer
with Type const*
2021-03-23 11:47:19 +01:00
Mathias Baumann
bccedf791b
Add creationCode/runtimeCode contract creation detection to call graph
2021-03-22 15:44:23 +01:00
Leonardo
25b31111df
Merge pull request #11040 from ethereum/smt_fix_virtual_one_more_time
...
[SMTChecker] Fix bug in virtual functions called by constructor
2021-03-17 16:54:36 +01:00
Harikrishnan Mulackal
35da404ca9
Merge pull request #11091 from ethereum/modifierInvocationAST
...
Add "kind" field to ModifierInvocation AST json element.
2021-03-16 19:44:40 +01:00
chriseth
0519473059
Add "kind" field to ModifierInvocation AST json element.
2021-03-16 18:50:37 +01:00
Martin Blicha
432944d0b4
[SMTChecker] Small refactoring of defining SMT expressions for structs/tuples
2021-03-16 15:34:43 +01:00
chriseth
ae1b321a2a
Merge pull request #11066 from ethereum/functionCollectorrefactor
...
Adding additional interface to yul function collector.
2021-03-15 21:42:34 +01:00
Djordje Mijovic
49fcda7048
Adding additional interface to yul function collector.
2021-03-15 20:27:16 +01:00
Martin Blicha
2f52affcc2
[SMTChecker] Correctly resolve current scope contract in VariableUsage.
2021-03-15 13:55:14 +01:00
Martin Blicha
6aa6c5f5f9
[SMTChecker] Reset reference variables on assignment to a variable of reference type
2021-03-12 19:51:31 +01:00
Leonardo Alt
998346e599
Fix bug in virtual functions called by constructor.
2021-03-12 16:42:28 +01:00
Martin Blicha
0cb75293f9
[SMTChecker] fix handling of assignments of array/mapping state variable accessed using contract name
2021-03-12 14:01:07 +01:00
Harikrishnan Mulackal
0e22d0bd40
Merge pull request #11079 from ethereum/fix-visibility-warning
...
AST import: constructors have default visibility
2021-03-11 12:23:46 +01:00
hrkrshnn
ef0c4cc39f
AST Import: For constructors, a public visibility is ignored.
2021-03-11 10:44:19 +01:00
Leonardo Alt
6fd76e830d
Fix CHC cex order
2021-03-11 10:36:40 +01:00
Martin Blicha
4285c2803b
[SMTChecker] Fix ICE on array.pop nested inside 1-tuple
2021-03-09 20:00:51 +01:00
Martin Blicha
5af01f6896
[SMTChecker] Use same sort name for array slice as for the underlying array.
2021-03-09 11:06:22 +01:00
Martin Blicha
385a664f3c
[SMTChecker] Fix public getter for array of structs.
2021-03-08 17:34:20 +01:00
Martin Blicha
0340510c53
[SMTChecker] correct handling of FixedBytes constants initialized with string literal
2021-03-04 15:14:47 +01:00
Martin Blicha
41fc59f00f
[SMTChecker] Ensure that push to a string casted to bytes is registered in the original string
2021-03-03 17:11:42 +01:00
Martin Blicha
41a01de664
[SMTChecker] fix crash on push to string casted to bytes
2021-03-03 15:25:32 +01:00
chriseth
d2023f5f95
Check for invalid tags.
2021-03-02 16:53:31 +01:00
chriseth
5690020d88
Allow custom natspec tags.
2021-03-02 16:13:28 +01:00
chriseth
2a25d04896
Merge pull request #11023 from ethereum/natspecparsinglocations
...
Provide locations for docstring parsing errors.
2021-03-02 14:03:42 +01:00
chriseth
f4050e81c6
Provide locations for docstring parsing errors.
2021-03-01 17:34:25 +01:00
chriseth
5e94fce7df
Provide selector for some internal functions.
2021-03-01 16:19:59 +01:00
chriseth
16db3a84f1
Fix call graph with respect to constants.
2021-02-25 16:00:53 +01:00
chriseth
eacf7c1cf9
Merge pull request #11009 from ethereum/properlyParseAddressMember
...
Properly parse address member.
2021-02-24 17:12:00 +01:00
chriseth
3d97e9a77b
Properly parse address member.
2021-02-24 16:44:16 +01:00
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