Mathias Baumann
64d14b4cc4
IRNames::function(): Return correct name if the function is a constructor
2021-02-23 10:29:12 +01:00
Mathias Baumann
8bacf03ffe
MultiUseYulFunctionCollector::requestedFunctions(): Refactor the loop to use destructuring
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
hrkrshnn
2608c56d32
Make an assert less strict
...
Even though one can convert from, say, a pure function to a function without a state mutability
specified, in ABIFunctions.cpp, there was an assert that checked if the types were exactly equal.
This assert had to be loosened up.
2021-02-17 17:12:02 +01: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
chriseth
9a621e91e3
Merge pull request #10761 from ethereum/oldOptimizerInlining
...
Simple inlining for old optimizer.
2021-02-09 19:35:12 +01:00
Daniel Kirchner
cb74a45fd6
Add inlining for old optimizer.
2021-02-09 19:08:58 +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
993c8c0734
[Sol->Yul] Adding unimplemented assert for fixed point types on right shift.
2021-02-09 16:17:56 +01:00
Đorđe Mijović
4fd5643970
Merge pull request #10912 from ethereum/calldataLValueSol2Yul
...
[Sol->Yul] Check lvalue kind is stack in case of calldata.
2021-02-08 14:19:24 +01:00
Djordje Mijovic
e53feaedc4
[Sol->Yul] Check lvalue kind is stack in case of calldata.
2021-02-08 13:27:51 +01:00
chriseth
8a876c8f79
Merge pull request #10911 from ethereum/fixedPointAssertionSol2Yul
...
[Sol->Yul] Adding unimplemented assert for fixed point type shifting.
2021-02-08 13:20:57 +01:00
Djordje Mijovic
97e9829988
[Sol->Yul] Adding unimplemented assert for fixed point type shifting.
2021-02-08 13:13:19 +01:00
Djordje Mijovic
706f5d9874
[Sol2Yul] Fixing setLValue for calldata types.
2021-02-08 12:42:10 +01:00
Djordje Mijovic
530435439d
[Sol->Yul] Fixing string calldata to bytes calldata conversion.
2021-02-04 09:30:19 +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
hrkrshnn
d6d880dc53
Old codegen: implemented 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
chriseth
1fcc76a562
Fix empty packed encoder.
2021-01-19 15:50:04 +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
chriseth
db4b39e09e
Round up allocations to multiples of 32.
2021-01-14 21:52:17 +00:00
chriseth
7d6331e26f
Use round up function.
2021-01-14 21:01:43 +00:00
Alex Beregszaszi
6ad0ea9f23
Merge pull request #10773 from ethereum/useArrayAllocationFunction
...
Fix array allocation.
2021-01-14 20:25:31 +00:00
chriseth
f4479fd7ed
Fix array allocation.
2021-01-14 19:56:37 +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
45be47fc6b
Merge pull request #10756 from ethereum/fixModifierLookup
...
Fix modifier lookup
2021-01-14 11:28:26 +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
Alex Beregszaszi
c15c6d26b7
Fix YulUtilFunctions::negateNumberWrappingFunction
2021-01-13 21:29:37 +00: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
Djordje Mijovic
b06936b11c
[refactor] Move copying struct to storage to it's own util function.
2021-01-11 16:26:14 +01:00
chriseth
994fdb7517
Determine encoding type earlier.
2021-01-11 11:57:22 +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
04d83af1d2
Merge pull request #10492 from ethereum/arrayClearingDiffBaseSol2Yul
...
[Sol->Yul] Fixing array clearing when copying from storage to storage.
2020-12-22 15:15:03 +01:00
chriseth
0437ee7ad9
Fix length check when decoding error data.
2020-12-22 11:08:44 +01:00
chriseth
b965446182
Catch panic.
2020-12-22 11:08:44 +01:00
Đorđe Mijović
b78443ac75
Merge pull request #10577 from ethereum/deleteMappingSol2Yul
...
[Sol->Yul] Skipping mapping types when deleting structs and arrays.
2020-12-21 20:08:51 +01:00
Djordje Mijovic
adb9d0c41a
[Sol->Yul] Fixing array clearing when copying from storage to storage.
2020-12-21 17:33:06 +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
Djordje Mijovic
9b8634f2a7
[Sol->Yul] Skipping mapping types when deleting structs and arrays.
2020-12-21 13:19:25 +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
Alex Beregszaszi
cad4f74012
Unary minus is not implemented for fixed point type
2020-12-15 18:02:10 +00:00
chriseth
ffaf40950a
Merge pull request #10605 from ethereum/develop
...
Merge develop into breaking.
2020-12-15 14:01:01 +01:00
Djordje Mijovic
64f0120622
Change assertions to align to TypeChecker.
2020-12-15 09:21:50 +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
chriseth
561280a5cc
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-14 11:33:40 +01: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
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
chriseth
d0551b67d7
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-10 17:07:56 +01:00
Djordje Mijovic
ab74194ca3
[Sol->Yul] Implementing empty byte array push.
2020-12-09 19:31:35 +01: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
49d1f541a1
Merge pull request #10264 from ethereum/warn-conversion
...
Enable -Wconversion
2020-12-08 20:37:12 +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
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
251f722919
Group decoding function cases.
2020-12-07 14:14:54 +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
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
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
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
chriseth
f02bc817af
Merge pull request #10388 from ethereum/forwardRevertOnCreate
...
[Sol->Yul] Forward failure for creation.
2020-11-25 10:39:54 +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
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
chriseth
ee657f5361
Merge pull request #10214 from ethereum/fallbackReturn
...
Allow fallback function to return data.
2020-11-23 19:49:59 +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
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
fda352094f
Allow fallback function to return data.
2020-11-23 14:22:37 +01:00
Leonardo Alt
e4339b0526
[SMTChecker] Support named arguments in function calls
2020-11-20 11:52:26 -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
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
e64fd99fb5
Fix qualified modifier lookup.
2020-11-17 18:33:45 +01:00
chriseth
74ce8d6979
Fix assignment to non-lvalue storage values.
2020-11-17 15:56:34 +01:00
chriseth
fffd0306f5
Fix bug in array to storage copy routine.
2020-11-17 14:56:44 +01:00
chriseth
98cc7a1ea9
Copying structs from storage to storage.
2020-11-17 11:06:25 +01:00
chriseth
d9fb17a85e
Copy value array from storage to storage.
2020-11-17 10:51:34 +01:00
chriseth
62893aa1a1
Copy byte arrays from storage to storage.
2020-11-16 19:06:33 +01:00
Kamil Śliwak
ade71d58f8
Assume that enums always take 1-byte in the codegen and type system
2020-11-16 18:58:19 +01:00
chriseth
d744a8fb48
Fail on invalid storage encoding for byte arrays.
2020-11-12 11:12:42 +01:00
chriseth
14ed67ac4b
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-11 20:33:40 +01:00
chriseth
44eb63fad0
Merge pull request #10263 from ethereum/fixTryCreateYul
...
Fix Yul codegen for try with create.
2020-11-11 20:10:54 +01:00
chriseth
571e1e5269
Merge pull request #10266 from ethereum/fixCalldataIndexAccess
...
Fix calldata index access.
2020-11-11 19:03:19 +01:00
chriseth
8f570a3184
Fix calldata index access.
2020-11-11 18:42:26 +01:00
chriseth
01d7d50750
Fix initializing mapping return variables.
2020-11-11 18:08:42 +01:00
chriseth
59da25056b
Fix Yul codegen for try with create.
2020-11-11 17:52:50 +01:00
chriseth
141277dadf
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-10 17:28:36 +01:00
chriseth
6cc264ff0a
Merge pull request #10221 from ethereum/refactorArrayConversions
...
[Sol->Yul] Refactor array conversions
2020-11-10 16:18:11 +01:00
hrkrshnn
2348b721bb
Tests after changing type of super to TypeType
2020-11-10 15:38:21 +01:00
hrkrshnn
9eafa1fa1a
Change type of super to TypeType
2020-11-10 15:38:21 +01:00
Djordje Mijovic
efba9e45e4
[Sol->Yul] Refactoring array conversions so that they end up in same function.
2020-11-10 15:13:45 +01:00
chriseth
768ac9514b
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-09 14:48:48 +01:00
chriseth
04195439b7
Merge remote-tracking branch 'origin/develop' into HEAD
2020-11-09 14:28:05 +01:00
Kamil Śliwak
c970fb46ce
YulUtilFunctions::conversionFunction: Add more info to the assertion that fails on invalid conversion
2020-11-09 13:41:03 +01:00
chriseth
b40fb527de
Remove access to functions from inline assembly (unused code).
2020-11-05 14:43:29 +01:00
chriseth
1f3239d097
Simplify split parameter.
2020-11-03 14:34:18 +01:00
chriseth
fea3f848f9
Prepare store for external function types.
2020-11-03 14:34:18 +01:00
chriseth
06d0459a72
Merge pull request #10187 from ethereum/validateExternal
...
[SolYul] Properly validate external functions from calldata.
2020-11-03 14:29:28 +01:00
chriseth
5ffee049fa
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-03 14:05:14 +01:00
chriseth
834da7be90
Introduce abicoder pragma.
2020-11-03 13:31:50 +01:00
chriseth
c16b535804
Validate external functions from calldata.
2020-11-03 13:28:08 +01:00
chriseth
22b31054b6
Merge pull request #10174 from ethereum/storeInternalFunctions
...
Implement internal functions in storage.
2020-11-03 09:56:12 +01:00
chriseth
129b095b09
Implement internal functions in storage.
2020-11-02 23:10:03 +01:00
chriseth
49bd3f2af4
Convert properly during storing.
2020-11-02 21:15:34 +01:00
chriseth
1066af3b98
Copy byte array to storage.
2020-10-29 18:53:15 +01:00
chriseth
14d7ca49c0
Rename function.
2020-10-29 18:53:15 +01:00
chriseth
f215042cf6
Fix style.
2020-10-29 17:35:55 +01:00
chriseth
e93a84ccd4
Merge remote-tracking branch 'origin/develop' into HEAD
2020-10-28 18:19:31 +01:00
chriseth
0c12b2e53a
Bit operations for fixed bytes types.
2020-10-28 18:04:54 +01:00
Djordje Mijovic
28f92064b9
[Sol->Yul] Fixing ice when copying struct that contains nested array to storage
2020-10-28 09:28:40 +01:00
chriseth
20f39ab6e9
Merge pull request #10097 from ethereum/develop
...
Merge develop into breaking.
2020-10-23 10:30:24 +02:00
chriseth
bfd267459c
Panic codes.
2020-10-22 19:25:55 +02:00
chriseth
bfc8e26007
Remove low-level log functions.
2020-10-22 17:50:14 +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
chriseth
6979952995
Merge remote-tracking branch 'origin/develop' into HEAD
2020-10-19 18:02:50 +02:00
chriseth
527c073bb9
Checked arithmetic by default.
2020-10-19 16:58:37 +02: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
Daniel Kirchner
0dca223b45
Add another argument to setimmutable and the AssignImmutable opcode, allowing to modify code at any memory offset.
2020-10-15 18:14:41 +02:00
chriseth
00fb152316
Merge pull request #10048 from ethereum/develop
...
Merge develop into breaking
2020-10-15 17:30:11 +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
chriseth
979d3062bc
Merge pull request #10033 from ethereum/develop
...
Merge develop into breaking
2020-10-14 14:12:20 +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
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
Mathias Baumann
006e5f2e1f
Allow path syntax for super constructor calls
2020-10-13 14:32:11 +02: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
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
Christian Parpart
712d0805eb
Fixes internal compiler error with an unused reference to module member.
2020-10-12 11:56:01 +02:00
chriseth
ca86eacfb2
Remove traces of errors due to shifts by negative amounts.
2020-10-08 20:24:53 +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
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
chriseth
431397eddf
Merge pull request #9943 from ethereum/array-cleanup
...
Array cleanup
2020-10-07 11:53:06 +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
Harikrishnan Mulackal
7773bb3bd0
Fix typo: storage
2020-10-02 11:44:10 +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
Djordje Mijovic
aa23ebc8e6
[Sol->Yul] Implementing array resizing for packed array types.
2020-10-01 10:25:00 +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
chriseth
2037b7d6b8
Merge pull request #9820 from ethereum/new-annotation-field-virtual
...
Add annotation field ``requiresVirtualLookup``
2020-09-29 15:33:54 +02:00
Mathias Baumann
8584c98b6a
Add annotation field `requiresVirtualLookup
`
2020-09-28 17:36:23 +02:00
chriseth
1e3596ec71
Use invalid opcode on internal errors.
2020-09-24 16:02:35 +02:00
chriseth
e696c4eafd
Extract common loop.
2020-09-23 16:14:24 +02:00
chriseth
55e6a92692
Add specialization for small numbers.
2020-09-23 16:14:24 +02:00
Mathias Baumann
dd81d05559
Make annotations `SetOnce
or
optional
` where feasible
2020-09-22 17:38:21 +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
chriseth
b1ccf73511
Store current source location in Yul IR generation.
2020-09-15 14:41:46 +02:00
chriseth
eac175c08b
Merge pull request #9053 from ethereum/generatedSources
...
Export generated sources
2020-09-15 12:08:47 +02:00
chriseth
3b4024c2e1
Store optimized code if optimizer is activated.
2020-09-15 11:22:41 +02:00
chriseth
e7e9b03bd8
Store generated sources in standard-json output.
2020-09-15 11:22:16 +02:00
Alex Beregszaszi
9aa9962f71
Add ContractDefinition::interfaceId() helper
2020-09-14 20:34:52 +01:00
Djordje Mijovic
ec6d21cde2
[Sol->Yul] Fixing storage array index access
2020-09-08 16:02:56 +02:00
chriseth
3a48be546d
Merge pull request #9602 from ethereum/structMemToStorageSol2Yul
...
[Sol->Yul] Implementing various copying of structs
2020-09-02 13:50:46 +02:00
Djordje Mijovic
1fab5b79fb
Refactoring signature for updateStorageValueFunction
2020-09-02 12:28:53 +02:00
Djordje Mijovic
15163b2270
Refactoring readFromStorage util frunctions
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-09-02 12:28:53 +02:00
Djordje Mijovic
23f6369a46
Implementing struct copying from calldata to storage
2020-09-02 12:28:53 +02:00
Djordje Mijovic
762e3f3cee
[Sol->Yul] Implementing struct copying from calldata to storage
2020-09-02 12:28:53 +02:00
Djordje Mijovic
381784dd89
[Sol->Yul] Implementing struct copying from storage to memory
2020-09-02 12:28:53 +02:00
Djordje Mijovic
b89c863e11
[Sol->Yul] Implementing struct copying from memory to storage
2020-09-02 12:28:53 +02:00
chriseth
8f34ac472f
Implement `super
`.
2020-09-02 11:00:42 +02:00
Djordje Mijovic
d99b81ef02
[Sol->Yul] Enabling storage pointers to local vars in inline assembly.
2020-08-26 10:25:42 +02:00
chriseth
17edf4f207
Merge pull request #9479 from ethereum/exp
...
Implement checked exponentiation.
2020-08-18 13:57:25 +02:00
chriseth
c34e349572
Implement checked exponentiation.
2020-08-18 12:42:53 +02:00
chriseth
9324fb4f20
Free functions.
2020-08-18 11:46:59 +02:00
chriseth
833f973f0e
Fix assertion for receive function in libraries.
2020-08-17 16:49:13 +02:00