Marenz
57db4c82ba
Fix: Use correct byte offset separation
...
":" instead of ","
2021-07-15 13:15:21 +02:00
Kamil Śliwak
ce79e2515b
docs: Fix badly indented lists
2021-07-15 10:13:30 +02:00
Kamil Śliwak
6753c8f624
Rename escapeAndQuoteYulString() back to escapeAndQuoteString()
2021-07-14 21:29:01 +02:00
chriseth
f75b55071e
Remove CharStream from SourceLocation.
2021-07-14 15:12:07 +02:00
Mathias Baumann
c47d02066c
Fix yul codegen bug when using binary negatition.
2021-06-29 17:41:03 +02:00
Kamil Śliwak
19fada966f
Do not use \b, \v and \f escapes in string literals in generated Yul code
2021-06-28 14:13:47 +02:00
Alexander Arlt
8accf420ea
[yul] Functions: Remove dependency on AST ID.
2021-06-23 16:15:25 +02:00
Djordje Mijovic
838f59fa5b
Adding origin location notation to yul ir.
2021-06-21 18:48:20 +02:00
chriseth
0df8a38e55
Support metadata via IR.
2021-06-21 18:20:31 +02:00
Mathias Baumann
d7d64c3db5
IR Codegen: Small refactoring & comment fixes
2021-06-14 13:35:53 +02:00
Mathias Baumann
6a0313c456
Unify function call resolve function used in Analysis & Yul CodeGen
2021-06-07 15:23:32 +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
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
Alex Beregszaszi
bf2c82adca
Document the panic function of library deployment
2021-05-26 15:51:46 +01:00
Daniel Kirchner
c69add1682
Remove import of ranges namespace.
2021-05-07 13:44:14 +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
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
chriseth
d721bbe504
Respect memory model in forwarding revert inside catch.
2021-05-03 12:19:46 +02:00
chriseth
79acebe46f
Allocate for returning runtime code.
2021-04-29 16:40:51 +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
anurag4u80
b2ca7916aa
Replaced boost::adaptors::transformed
2021-04-08 17:38:14 +05:30
anurag4u80
bbcdddeed9
Replaced keys, values and reverse with ranges
2021-03-31 23:33:04 +05:30
chriseth
d5669696d5
Code generation for errors.
2021-03-30 21:15:46 +02:00
chriseth
b04b189959
Syntax for custom errors.
2021-03-30 21:15:18 +02:00
chriseth
99fcf62736
Extract referencedDeclaration as helper.
2021-03-24 17:01:50 +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
1493326e48
Adding bytes.concat function type.
2021-03-24 11:49:21 +01:00
Mathias Baumann
e197ebbdd1
Replace TypePointer
with Type const*
2021-03-23 11:47:19 +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
5e9637bc39
Mapping access with multi-slot keys.
2021-02-24 13:44:23 +01:00
Alexander Arlt
ae6996efc1
Fix issue with pop on storage array.
2021-02-23 14:26:55 +01:00
chriseth
7d0ecd9406
Merge pull request #10535 from ethereum/removeNumbers
...
Improve generated names.
2021-02-23 13:29:18 +01:00
chriseth
d586b7b57a
Merge pull request #10991 from ethereum/bareCallNoReturndatacopy
...
[Sol->Yul] Fix bare call wihout returndatacopy.
2021-02-23 13:24:50 +01:00
Kamil Śliwak
781f00771c
Remove IRGenerator::verifyCallGraphs and make generate() verify the graphs automatically
2021-02-23 10:47:02 +01:00
Kamil Śliwak
6c28120f19
Move CallGraph structure to a separate module
2021-02-23 10:47:02 +01:00
Mathias Baumann
4c283f00c1
Add IRGenerator::verifyCallGraphs()
2021-02-23 10:46:28 +01:00
chriseth
e9b3dd21d0
Fix bare call wihout returndatacopy.
2021-02-23 10:45:01 +01:00
Mathias Baumann
64d14b4cc4
IRNames::function(): Return correct name if the function is a constructor
2021-02-23 10:29:12 +01:00
Alexander Arlt
c44bb7e7ef
Replace raw throw with BOOST_THROW_EXCEPTION.
2021-02-18 20:23:59 -05:00
chriseth
54cf56b3a5
Simplify generated names.
2021-02-16 14:20:27 +01:00
hrkrshnn
0135cae222
Fix IR bug: constructor parameter that needs multiple stack slots
...
When an argument had multiple stack slots, like `function() external`, there wasn't enough variables
assigned for the constructor. This lead to some mismatch between return values and arguments between
some functions.
2021-02-12 17:42:02 +01:00
hrkrshnn
7786e6d561
Fix IR bug when modifier parameter was function return variable
...
The bug was that function return variables were not part of the m_context.localVariable during
the modifier generation and a looking up them was throwing.
2021-02-11 14:44:55 +01:00
chriseth
1716dcfb57
Merge pull request #10950 from ethereum/removeChecks
...
[SolYul] Remove (hopefully) unnecessary checks.
2021-02-11 14:10:05 +01:00
chriseth
45dc705683
Remove unnecessary checks.
2021-02-11 13:08:03 +01:00
Harikrishnan Mulackal
215233d5c8
Merge pull request #10945 from ethereum/constructor-modifier-bugfix
...
Fix IR bug about calling the wrong modifier during construction
2021-02-10 21:42:45 +01:00
hrkrshnn
2f30fdaa21
Fix IR bug about calling the wrong modifier during construction
2021-02-10 20:53:11 +01:00
chriseth
a72ab1c9c1
Replace "runtime" by "deployed" naming.
2021-02-10 00:56:16 +01:00
Djordje Mijovic
9438706daf
[Sol->Yul] Adding assertion for shift amount not being of FixedPointType.
2021-02-09 17:58:49 +01:00
Djordje Mijovic
e53feaedc4
[Sol->Yul] Check lvalue kind is stack in case of calldata.
2021-02-08 13:27:51 +01:00
Djordje Mijovic
706f5d9874
[Sol2Yul] Fixing setLValue for calldata types.
2021-02-08 12:42:10 +01:00
chriseth
e9dc9c5baf
Fix merge conflict.
2021-01-26 13:53:22 +01:00
chriseth
4697beeab2
Merge pull request #10769 from ethereum/allocationCleanup
...
Cleanup allocation.
2021-01-26 11:58:11 +01:00
hrkrshnn
526ceec152
Implement IR shortcut for <address>.code.length
2021-01-26 11:07:04 +01:00
Alexander Arlt
061fecbc90
[whiskers] Add check that template contain tags.
2021-01-20 15:26:34 -05:00
chriseth
3cc07694ed
Cleanup allocation.
2021-01-20 18:25:27 +01:00
Leonardo
9bde92ca20
Merge pull request #10807 from ethereum/fixIRReasonStrings
...
Properly omit require revert strings in IR code generator if requested.
2021-01-19 10:31:15 +01:00
chriseth
a3ee334b42
Omit require revert strings in IR code generator.
2021-01-18 18:47:55 +01:00
chriseth
4f3839e4ba
Fix abi encode with signature shortcut.
2021-01-18 13:44:52 +01:00
Djordje Mijovic
a0c80c2bdb
[Sol->Yul] Enabling copying_bytes_multiassign test via ir.
2021-01-18 12:40:51 +01:00
Alex Beregszaszi
7c7fd22062
Include revert strings in IR
2021-01-14 18:45:12 +01:00
chriseth
7d036dcb81
Merge pull request #10762 from ethereum/packedStorageOverflowSol2Yul
...
[Sol->Yul] Fixing uncheked increment/decrement.
2021-01-14 15:32:55 +01:00
chriseth
a65415cdad
Fix accessing libraries inside modules.
2021-01-14 14:07:08 +01:00
Djordje Mijovic
dc3e76bc2c
[Sol->Yul] Fixing uncheked increment/decrement.
2021-01-14 13:46:04 +01:00
chriseth
170cd5d2ae
Merge pull request #10760 from ethereum/asmConstantsFileLevel
...
Fix accessing constants at file level from inline assembly.
2021-01-14 11:33:47 +01:00
chriseth
8905af28c3
Merge pull request #10759 from ethereum/nestedBytesArraySol2Yul
...
[Sol->Yul] Fixing nested bytes array push.
2021-01-14 11:33:06 +01:00
chriseth
8ad9290086
Fix modifier lookup.
2021-01-14 11:01:14 +01:00
chriseth
30305ebbd9
Fix accessing constants at file level from inline assembly.
2021-01-14 10:51:47 +01:00
Djordje Mijovic
7c45509a77
[Sol->Yul] Fixing nested bytes array push.
2021-01-14 10:32:31 +01:00
chriseth
5c453acbe8
Fix encoding of library return values.
2021-01-11 20:37:45 +01:00
chriseth
e807c9bb63
Library call guard.
2021-01-11 20:37:44 +01:00
Djordje Mijovic
85b8325f0b
[Sol->Yul] Implementing dynamic array push for arrays of structs.
2021-01-11 17:49:42 +01:00
Harikrishnan Mulackal
5241b7b761
Merge pull request #10684 from ethereum/fixIRWrappingExp
...
Use wrapping arithmetic for exp in unchecked blocks.
2021-01-06 18:53:54 +01:00
Djordje Mijovic
047d693ac9
Refactoring copyLiteralToMemoryFunction and reusing it from other functions.
...
Co-authored-by: Leonardo <leo@ethereum.org>
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2020-12-30 17:31:20 +01:00
Djordje Mijovic
ddb05769a5
[Sol->Yul] Implementing type name.
2020-12-30 17:19:03 +01:00
chriseth
2ab83217e3
Use wrapping arithmetic for exp in unchecked blocks.
2020-12-22 16:49:55 +01:00
chriseth
b965446182
Catch panic.
2020-12-22 11:08:44 +01:00
Djordje Mijovic
2d5a2c65a8
[Sol->Yul] Implementing getters for bytes and structs containing bytes member.
...
Co-authored-by: chriseth <chris@ethereum.org>
2020-12-21 14:46:06 +01:00
chriseth
35908c602b
Modifiers for constructors.
2020-12-17 17:00:51 +01:00
chriseth
ccaa81fbe7
Implement function modifiers.
2020-12-17 17:00:51 +01:00
chriseth
baaf7c0db8
Implement address(...).code in the IR
2020-12-11 03:00:30 +00:00
Alex Beregszaszi
7cd05bf603
Introduce block.chainid
2020-12-10 17:07:54 +00:00
Alex Beregszaszi
ad6739d0f6
Support address().codehash
2020-12-09 14:58:27 +00:00
chriseth
806453aca9
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-08 21:00:09 +01:00
chriseth
e97ca0a777
Evaluate base arguments in derived to base order.
2020-12-08 20:27:06 +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
Alex Beregszaszi
1e2bfbd6b2
Enable the -Wextra-semi warning
2020-12-04 17:21:19 +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
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
6de7eaba95
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-01 10:50:13 +01:00
Mathias Baumann
f8e6f4a4eb
Use annotation.calledDirectly to simplify IR codegen
2020-11-30 18:54:42 +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