chriseth
e97ca0a777
Evaluate base arguments in derived to base order.
2020-12-08 20:27:06 +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
fda352094f
Allow fallback function to return data.
2020-11-23 14:22:37 +01:00
Mathias Baumann
a4dc110b38
Fix dependency tracking for abstract contracts for Yul codegen
2020-10-20 16:58:24 +02:00
Daniel Kirchner
82876fd00e
Disable StackLimitEvader again until we have stronger correctness guarantees.
2020-10-15 16:16:41 +02:00
chriseth
5dc3a971cb
Use revert for out-of-bounds array index access in getter.
2020-10-13 18:57:41 +02:00
chriseth
1e3596ec71
Use invalid opcode on internal errors.
2020-09-24 16:02:35 +02:00
Daniel Kirchner
976abf4715
Easy review fixes.
2020-09-17 22:13:27 +02:00
Daniel Kirchner
f4b42d1c72
Add stack limit evader.
2020-09-17 22:13:27 +02:00
chriseth
930646ba2b
Report locations of unimplemented features.
2020-09-15 14:41:46 +02:00
Djordje Mijovic
d99b81ef02
[Sol->Yul] Enabling storage pointers to local vars in inline assembly.
2020-08-26 10:25:42 +02:00
Sachin Grover
b7adb2aa42
Add SPDX license identifier if not present already in source file
...
Fixes : #9220
2020-07-17 20:24:12 +05:30
chriseth
37e8d78cff
[Sol->Yul] Implement getters.
2020-06-03 10:33:37 +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
Kamil Śliwak
465e4d4088
Extract more functions for generating function and variable names into IRNames
2020-05-15 14:51:00 +02:00
Kamil Śliwak
7af7273b60
Move static functions for constructing names from IRGenerationContext into the new Common
module
2020-05-14 19:48:00 +02:00
chriseth
d0b82fe854
Merge pull request #8869 from ethereum/useSlotes
...
Use vector of slots.
2020-05-07 19:03:59 +02:00
chriseth
75ca072ae6
Assertion about getters for non-value type immutables.
2020-05-07 18:18:40 +02:00
chriseth
f38cf85482
Use vector of slots.
2020-05-07 17:54:04 +02:00
chriseth
f42dc70c9f
Merge pull request #8863 from ethereum/nonReversedEncoder
...
Introduce non-reversed version of tupleEncoder.
2020-05-07 15:47:32 +02:00
chriseth
e986fde0c1
Introduce non-reversed version of tupleEncoder.
2020-05-07 15:08:09 +02:00
chriseth
6fb112fa8e
Remove some unneeded headers.
2020-05-07 01:49:46 +02:00
chriseth
02c20698c9
IR generation for constants.
2020-05-05 17:07:55 +02:00
Djordje Mijovic
cf607aa887
[Sol->Yul] Checking if there is base contract when calling base constructror via modifier invocation.
2020-05-04 20:38:22 +02:00
chriseth
51ccb1519f
Yul codegen for immutables.
2020-05-04 15:00:50 +02:00
Djordje Mijovic
f3f729549d
[Sol->Yul] Enabling creation function call
2020-04-27 16:15:57 +02:00
Kamil Śliwak
64bce597a1
IRGenerator: Enable code generation for libraries
2020-04-24 15:00:17 +02:00
Djordje Mijovic
5329da93fb
[Sol2Yul] Adding support for constructors with parameters in case of inheritance
2020-04-22 14:47:08 +02:00
Kamil Śliwak
c7947c1af6
Implement lazy function generation using function generation queue
2020-04-17 13:28:07 +02:00
Kamil Śliwak
1f28f79ae6
IRGenerator::generate(): Remove duplicate call to setMostDerivedContract()
...
- The same call happens in resetContext(_contract) called immediately before
2020-04-17 13:28:07 +02:00
chriseth
823a119117
Merge pull request #8570 from aarlt/clang-tidy-apply-modernize-use-emplace
...
clang-tidy: Apply modernize-use-emplace.
2020-04-07 17:28:50 +02:00
Alexander Arlt
90bb1d8a7c
Apply modernize-use-emplace.
2020-04-02 17:35:48 -05:00
Leonardo Alt
39ff0deb05
Zero initialize memory arrays
2020-04-02 15:55:18 +02:00
Djordje Mijovic
89d5ecdd24
[Sol2Yul] Adding support for constructor with parameters
2020-03-27 01:19:11 +01:00
chriseth
173f234860
Refactor: Replace inheritance hierarchy by most derived contract.
2020-03-26 18:27:39 +01:00
chriseth
fa148f2483
Parsing of immutable state variable.
2020-03-12 17:11:24 +01:00
Daniel Kirchner
857ed12b05
Use plain members and references instead of shared pointers for MultiUseYulFunctionCollector
2020-03-04 16:16:34 +01:00
Daniel Kirchner
3c9f18b749
Use IRVariable's in IR code generation and implement tuples.
2020-02-12 12:36:14 +01:00
Leonardo Alt
36928c7a35
Add reason string for internal reverts
2020-02-10 11:57:20 -03:00
Daniel Kirchner
af9fc8b634
Mapping getters for Yul IR.
2020-02-04 17:22:03 +01:00
Christian Parpart
345f9928ab
Library libdevcore renamed to libsolutil.
2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae
C++ namespace cleanup (except tests).
2020-01-07 15:51:50 +01:00
Daniel Kirchner
3321fc56ea
Split fallback function and introduce "fallback()" and "receive()" syntax.
2019-11-04 17:17:58 +01:00
chriseth
c30839888f
Use `leave
` in code generator.
2019-10-29 14:32:16 +01:00
Christian Parpart
235638b3fc
Implements constructor code for state variables.
2019-08-05 11:23:01 +02:00
Mathias Baumann
d264e3e0ba
[Sol->Yul] Implement getter functions
2019-07-10 13:42:39 +02:00
djudjuu
cafa01cbf6
moved SuffixHelper to StringUtils
2019-07-09 13:50:07 +02:00
Christian Parpart
0fd1db533e
yul: adds reindent() function to reindent yul source code and makes use of it in IRGenerator.
...
This function does count curly and round braces and reindents
accordingly the beginning of each line.
It does consider line-comments (// and ///) but not multiline comments (/* ... */).
2019-06-24 12:53:50 +02:00
Mathias Baumann
c5b50039d2
[Sol->Yul] Report error after Ir code
...
this way less scrolling is required
2019-06-19 18:09:23 +02:00
chriseth
63a072f122
[SolYul] Partially implement constructor.
2019-05-09 17:57:33 +02:00