Commit Graph

547 Commits

Author SHA1 Message Date
chriseth
af0cd4ab98
Merge pull request #9252 from ethereum/develop
Merge develop into breaking.
2020-06-23 18:28:24 +02:00
Bhargava Shastry
0397266351 Implement multi source semantic tests
Co-authored-by: chriseth <chris@ethereum.org>
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-06-23 17:29:16 +02:00
chriseth
71cb7551f4
Merge pull request #9208 from ethereum/develop
Merge develop into breaking.
2020-06-16 16:11:41 +02:00
chriseth
8155ad2187 Merge remote-tracking branch 'origin/develop' into breaking 2020-06-15 17:11:41 +02:00
Bhargava Shastry
9264135bef Add tests to validate clearing dirty bits via inline assembly operations 2020-06-12 11:32:15 +02:00
chriseth
0689cda19a
Merge pull request #9116 from ethereum/solYulCleanupFromStorageReference
New test for getters.
2020-06-11 14:08:10 +02:00
chriseth
012ba9537b
Merge pull request #9184 from ethereum/fixUsingForStorage
Fix using for with explicit reference types.
2020-06-11 14:00:28 +02:00
chriseth
5c71b3fbb0
Merge pull request #9173 from ethereum/fixBoundCalldata
Fix bound functions with calldata parameters.
2020-06-11 13:31:30 +02:00
chriseth
549c90612c Fix using for with explicit reference types. 2020-06-11 13:04:41 +02:00
Daniel Kirchner
73cd009b89 Fix struct allocation in Sol->Yul. 2020-06-11 12:16:45 +02:00
Daniel Kirchner
90b66a7362 Fix struct member access for memory and implement for calldata. 2020-06-10 20:01:30 +02:00
chriseth
baabe65a84 Fix bound functions with calldata parameters. 2020-06-10 17:37:59 +02:00
Djordje Mijovic
e73fe17277 Fixing ICE on calling externally a function that returns calldata pointers
Co-authored-by: chriseth <chris@ethereum.org>
2020-06-10 14:41:45 +02:00
chriseth
6b3171c38b Merge remote-tracking branch 'origin/develop' into breaking 2020-06-10 11:30:50 +02:00
chriseth
81f54a170b Cleanup from storage. 2020-06-09 14:57:04 +02:00
chriseth
2724ce9511 Index access to fixed bytes and byte arrays. 2020-06-09 10:50:28 +02:00
chriseth
259292c884
Merge pull request #9118 from ethereum/develop
Merge develop into breaking.
2020-06-04 10:18:46 +02:00
chriseth
010a2246c7 More tests for getters. 2020-06-03 21:47:24 +02:00
chriseth
a6c773bd96 Fix type inversion for shift and exp operators. 2020-06-03 13:46:26 +02:00
chriseth
e7f3c042b6 Struct member access for storage and memory. 2020-06-03 10:37:39 +02:00
chriseth
37e8d78cff [Sol->Yul] Implement getters. 2020-06-03 10:33:37 +02:00
chriseth
894478ff8c
Merge pull request #9038 from ethereum/develop
Merge develop into breaking.
2020-05-27 15:24:27 +02:00
chriseth
0aa3fb5026
Merge pull request #9014 from ethereum/sol-yul-abidecode
[Sol - Yul] Add support for ABIDecode.
2020-05-27 11:44:13 +02:00
Kamil Śliwak
f574d8ec3a Don't assume that an expression cannot be associated with a function declaration 2020-05-27 00:05:18 +02:00
Alexander Arlt
118cb13476 [Sol - Yul] Add support for ABIDecode. 2020-05-26 13:30:37 -05: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
chriseth
99194b1450 New tests. 2020-05-26 10:51:13 +02:00
Djordje Mijovic
4c3e78d046 Disallowing shifts by signed types 2020-05-26 10:18:21 +02:00
chriseth
69a028b49c Merge remote-tracking branch 'origin/develop' into breaking 2020-05-26 10:11:23 +02:00
Kamil Śliwak
4a2ce57bed Add support for bound function calls in IR generator 2020-05-20 21:10:20 +02:00
chriseth
74b9b094c0 Merge remote-tracking branch 'origin/develop' into HEAD 2020-05-20 17:22:47 +02:00
chriseth
3c71412a47
Merge pull request #8988 from ethereum/isoltest_default_formatting
[isoltest] Improve parameter formatting.
2020-05-20 08:05:33 +02:00
Alexander Arlt
410986e00f [isoltest] Improve parameter formatting. 2020-05-19 19:13:39 -05:00
chriseth
d422a406ba
Merge pull request #8983 from ethereum/develop
Merge develop into breaking.
2020-05-19 18:05:28 +02:00
Kamil Śliwak
16e80b7bcd Test case for internal dispatch with functions that have arguments that take up multiple slots 2020-05-19 18:02:14 +02:00
Djordje Mijovic
bd64b971b9 Fixing tests on breaking branch. 2020-05-19 17:42:19 +02:00
Djordje Mijovic
d235d0c166 [Sol->Yul] Implementing Byte array push() and pop() 2020-05-19 14:47:00 +02:00
chriseth
7ef114db9a
Merge pull request #8841 from ethereum/sol_yul_ripemd160_ecrecover
[Sol - Yul] Add support for ripemd160 & ecrecover.
2020-05-14 18:43:55 +02:00
Alexander Arlt
91e9d54c71 [Sol - Yul] Add support for ripemd160 & ecrecover. 2020-05-14 10:44:39 -05:00
chriseth
993a7941b1 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 17:24:40 +02:00
chriseth
257bc6a416 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 13:04:46 +02:00
Djordje Mijovic
472fb21ee0 [Sol->Yul] Enabling new bytes(n) 2020-05-14 12:55:14 +02:00
chriseth
1700bdc4ad
Merge pull request #8925 from ethereum/abiEncodeCalldataSlice
Allow abi encoding array slices without casting.
2020-05-13 18:55:16 +02:00
Daniel Kirchner
97296d8622 Allow ABI encoding for array slices without explicit casts. 2020-05-13 18:20:07 +02:00
Mathias Baumann
820fdd9bf7 Escape backslashes when formatting 2020-05-13 17:08:37 +02:00
chriseth
0be56a0abf Merge remote-tracking branch 'origin/develop' into breaking 2020-05-12 17:48:53 +02:00
Daniel Kirchner
c2f5a66a79 Implement .creationCode for Sol->Yul. 2020-05-11 18:51:51 +02:00
Daniel Kirchner
3fbde6e782
Merge pull request #8856 from ethereum/implicitConstructorCallvalueCheck
Implicit constructor callvalue check
2020-05-11 18:50:36 +02:00
Daniel Kirchner
79b217dfb3 Callvalue checks for implicit constructors. 2020-05-11 16:14:34 +02:00
chriseth
c0bf529236 Support bare calls. 2020-05-11 15:11:46 +02:00
chriseth
0248303c15
Merge pull request #8872 from ethereum/int-min-max
implemented type(X).min and type(X).max for all integer types
2020-05-11 15:08:19 +02:00
Harikrishnan Mulackal
e4e200f29f Changelog and tests 2020-05-11 15:29:05 +05:30
Harikrishnan Mulackal
e54c4eecfc implemented type(X).min and type(X).max for all integer types 2020-05-11 14:51:13 +05:30
chriseth
a0e291bd06 Implement Yul IR generation for abi.encode* 2020-05-07 19:39:15 +02:00
chriseth
f38cf85482 Use vector of slots. 2020-05-07 17:54:04 +02:00
chriseth
e986fde0c1 Introduce non-reversed version of tupleEncoder. 2020-05-07 15:08:09 +02:00
Alex Beregszaszi
327c75bc1b IR generation for shifts 2020-05-06 19:14:23 +02:00
chriseth
76275cf34a
Merge pull request #8824 from ethereum/solYulDirtyMemory
Fix accessing memory reference types in yul codegen and clean up on memory reads.
2020-05-06 16:17:19 +02:00
Daniel Kirchner
234ffcf278
Merge pull request #8718 from ethereum/irConstants
IR generation for constants.
2020-05-06 16:05:17 +02:00
Daniel Kirchner
c25a3eba14 Fix accessing memory reference types in yul codegen and clean up on memory reads. 2020-05-06 11:34:11 +02:00
Daniel Kirchner
b580106c80 Yul parser hack and more yul tests. 2020-05-05 17:23:41 +02:00
chriseth
02c20698c9 IR generation for constants. 2020-05-05 17:07:55 +02:00
Daniel Kirchner
28d25afab1 Cleanup tests for Sol->Yul arithmetic and comparison. 2020-05-05 13:38:31 +02:00
Djordje Mijovic
e8f6f63e77 [Sol2Yul] Adding support for builtin revert(string) 2020-05-05 07:05:39 +02:00
Djordje Mijovic
8b7f87eed5 [isoltest] Enforcing compileViaYul to be set if test can pass via yul 2020-05-05 00:38:13 +02:00
chriseth
ecbf216354 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-04 18:46:45 +02:00
chriseth
1aef9c7d20
Merge pull request #8777 from ethereum/sol_yul_simplefunctions
[Sol - Yul] Add some built-in functions.
2020-05-04 16:07:10 +02:00
chriseth
51ccb1519f Yul codegen for immutables. 2020-05-04 15:00:50 +02:00
Alexander Arlt
151e637336 [Sol - Yul] Add some built-in functions.
- simplifications for GasLeft, Selfdestruct and BlockHash.
- add support for addmod & mulmod.
2020-04-30 14:10:09 -05:00
Jason Cobb
8973732b74
Compare categories instead of types in ContractCompiler(740) 2020-04-28 13:13:45 -04:00
chriseth
1fe55370f4 Merge remote-tracking branch 'origin/develop' into HEAD 2020-04-28 13:02:06 +02:00
hrkrshnn
bd0b06e8db Tests, Docs and Changelog 2020-04-28 16:03:52 +05:30
Djordje Mijovic
f3f729549d [Sol->Yul] Enabling creation function call 2020-04-27 16:15:57 +02:00
chriseth
dda883b585 IR generation for sha256. 2020-04-27 11:10:20 +02:00
Kamil Śliwak
d3da878200 Enable internal library calls 2020-04-24 15:00:51 +02:00
Kamil Śliwak
56a85d6cb3 IRGeneratorForStatements: Handle internal calls to functions from specific base contracts as static calls rather than calls via pointers 2020-04-24 15:00:16 +02:00
chriseth
2b39f3b988
Merge pull request #8766 from ethereum/sol_yul_gasleft
[Sol - Yul] Add support for built-in gasleft().
2020-04-24 14:24:01 +02:00
Alexander Arlt
aafa4583df [Sol - Yul] Add support for built-in gasleft(). 2020-04-23 17:14:03 -05:00
Kamil Śliwak
e65a5a562e IRGenerationContext::internalDispatch(): Fix code generated when the function called via pointer does not return anything 2020-04-23 21:16:41 +02:00
hrkrshnn
48ff9fd4d6 Tests, Changelog and updated grammar 2020-04-23 17:27:37 +05:30
chriseth
16ed53ddd0
Merge pull request #8591 from mijovic/sol2YulConstructorParams
[Sol2Yul] Adding support for constructors with parameters (inheritance)
2020-04-23 12:56:54 +02:00
chriseth
a371910674
Merge pull request #8642 from ethereum/interfaceid
Add support for interfaceId.
2020-04-23 12:24:49 +02:00
chriseth
6728e3ef94 Merge remote-tracking branch 'origin/develop' into breaking 2020-04-22 17:21:32 +02:00
Djordje Mijovic
5329da93fb [Sol2Yul] Adding support for constructors with parameters in case of inheritance 2020-04-22 14:47:08 +02:00
chriseth
4908101ad7 Yul IR generation for member access to type types. 2020-04-22 11:25:27 +02:00
chriseth
1d8e742296
Merge pull request #8684 from ethereum/yulForSelector
Yul codegen for `.selector`.
2020-04-20 16:32:11 +02:00
Kamil Śliwak
c7947c1af6 Implement lazy function generation using function generation queue 2020-04-17 13:28:07 +02:00
Alexander Arlt
3754a86ab2 Add support for interfaceID. 2020-04-16 12:17:40 -05:00
chriseth
f271dfa2e2 Yul codegen for .selector. 2020-04-16 13:42:58 +02:00
chriseth
06adbc2c59 Implement bit operations. 2020-04-16 00:33:45 +02:00
Daniel Kirchner
0c5c93f3c2 Fix tuple assignments for empty tuples in Yul IR. 2020-04-15 11:10:52 +02:00
Christian Parpart
d00d3c45b1 [Sol2Yul] Implements codegen part for try/catch statements. 2020-04-14 18:42:37 +02:00
a3d4
aba0b2957c Fix tuple assignments with multi-slot components. 2020-04-07 18:39:25 +02:00
chriseth
51883958ab Merge remote-tracking branch 'origin/develop' into breaking 2020-04-07 11:14:28 +02:00
Daniel Kirchner
d68c526eaa Disallow external function pointers as immutables. 2020-04-03 11:56:51 +02:00
chriseth
d7a39c86ce Accessors for immutable variables. 2020-04-02 19:09:54 +02:00
Leonardo Alt
39ff0deb05 Zero initialize memory arrays 2020-04-02 15:55:18 +02:00
Daniel Kirchner
77ea896b68 Properly handle assignments of immutables at declaration. 2020-04-02 08:35:22 +02:00
Daniel Kirchner
fe9f8d520c Restrict size for dynamic memory array creation. 2020-04-01 17:25:09 +02:00
chriseth
b83d82ab75
Merge pull request #8550 from a3d4/fix-8450-typechecker-compiler-error
Fix  a couple of internal compiler errors when assigning nested tuples
2020-03-31 22:21:58 +02:00
a3d4
c002cae691 Fix #8450. Prevented internal compiler errors when assigning nested tuples. 2020-03-31 03:25:26 +02:00
Djordje Mijovic
89d5ecdd24 [Sol2Yul] Adding support for constructor with parameters 2020-03-27 01:19:11 +01:00
chriseth
165f7bf60f Move files. 2020-03-26 17:47:36 +01:00
Alexander Arlt
67e9776418 Extract 45 tests from SolidityEndToEndTest.cpp 2020-03-26 17:39:12 +01:00
Daniel Kirchner
e255c15227 Tests. 2020-03-24 16:45:31 +01:00
Daniel Kirchner
04d8ad2ae1 Legacy codegeneration for immutable state variables. 2020-03-24 16:45:25 +01:00
chriseth
7d68f9f6c3 Merge remote-tracking branch 'origin/develop' into breaking 2020-03-24 13:35:41 +01:00
Daniel Kirchner
fe659ceb41 Anything outside storage is always a pointer. 2020-03-23 15:34:10 +01:00
Leonardo Alt
0fcb1427c9 Fix Yul codegen when dynamic array is used as rhs of assignment 2020-03-20 17:52:51 +01:00
chriseth
d55bbd4aa5
Merge pull request #8508 from a3d4/again-refactor-testcase-classes
More refactoring of TestCase classes
2020-03-19 23:05:32 +01:00
chriseth
f25157a5f8 Sort tests. 2020-03-19 14:42:25 +01:00
a3d4
f4d9f6772f Unified use of settings. Removed a couple of unused functions. 2020-03-19 14:02:39 +01:00
Alexander Arlt
23d00b5ca3 Extracted 292 tests from SolidityEndToEndTest.cpp 2020-03-18 11:56:43 -05:00
Djordje Mijovic
96d278b101 [Sol->Yul] Adding slicing for call data arrays 2020-03-13 13:40:38 +01:00
Daniel Kirchner
bdd8045db5
Merge pull request #8183 from ethereum/functionOptionsYulIR
[YulIR] Function call options for Yul IR
2020-03-12 10:49:51 +01:00
Leonardo Alt
89ce2dbfe9 The identifier var should be fine in Yul 2020-03-11 18:45:08 +01:00
chriseth
9d92c9fbf1 Merge remote-tracking branch 'origin/develop' into HEAD 2020-03-11 18:44:06 +01:00
chriseth
5dd30777d2 Test. 2020-03-10 22:44:06 +01:00
Christian Parpart
bb29a7e497
Merge pull request #8460 from ethereum/yulutil-convert-array
YulUtilFunctions: convertionFunction() to also handle array string/memory casts
2020-03-10 14:00:34 +01:00
Christian Parpart
5d7a370248 YulUtilFunctions: convertionFunction() to also handle array string/memory casts. 2020-03-10 11:21:12 +01:00
chriseth
b7c001eb7f
Merge pull request #8416 from ethereum/reuseYulCalldataTailAccess
Fix yul calldata tail access functions and reuse them for old codegen.
2020-03-09 15:10:48 +01:00
Christian Parpart
988bd6780b
Merge pull request #8414 from ethereum/sol2yul-func-type-conversion
[Sol2Yul] Implements function-to-function cast.
2020-03-09 11:31:44 +01:00
Christian Parpart
e210026e74 [Sol2Yul] Implements function-to-function cast. 2020-03-09 10:40:57 +01:00
Daniel Kirchner
e58a1de57f
Merge pull request #8431 from mijovic/sol2YulSelectorAddress
Adding sol->yul for f.selector and f.address
2020-03-06 22:48:38 +01:00
Djordje Mijovic
092827b7ad Adding sol->yul for f.selector and f.address 2020-03-06 21:43:14 +01:00
Daniel Kirchner
7f38cbb91d Fix calling unimplemented base function. 2020-03-06 10:51:16 +01:00
Daniel Kirchner
919888ddbc Use yul function for calldata tail access, fix checks and add additional revert reason. 2020-03-04 14:39:36 +01:00
Djordje Mijovic
58c6b90705 Deprecated warning for .value() and .gas() on function and constructror calls 2020-03-04 12:51:49 +01:00
chriseth
06ad5b3200 Merge remote-tracking branch 'origin/develop' into HEAD 2020-02-27 15:06:36 +01:00
chriseth
45041e5d3a Allow access to `_slot` for local storage pointer variables. 2020-02-25 14:28:04 +01:00
Djordje Mijovic
dd9009eba6 TestFileParser: Adding new keyword wei for expressing function value 2020-02-21 11:39:37 +01:00
Christian Parpart
c92fe69a60 Finishes external call implementation. 2020-02-14 11:59:04 +01:00
Leonardo Alt
3800391a1a [Yul] Support conditionals 2020-02-13 17:02:15 -04:00
chriseth
9aed40ab19 Check that functions exist in isoltest. 2020-02-13 13:22:53 +01:00
Daniel Kirchner
df0873d138 Implement calldata arrays for Yul IR 2020-02-12 14:00:29 +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
d882b6fa83 Allow tests to be marked ABIEncoderV1Only. 2020-02-04 17:22:03 +01:00
Daniel Kirchner
af9fc8b634 Mapping getters for Yul IR. 2020-02-04 17:22:03 +01:00
Daniel Kirchner
d3cbfb0c5c Allow user-defined types as mapping keys in parser and restrict to contracts during type checking. 2020-02-04 17:22:03 +01:00
Mathias Baumann
1027f6f78f Extract some semantic tests 2020-01-28 11:59:44 +01:00
chriseth
790c6d2cae Tests for salted create. 2020-01-23 21:20:01 +01:00
Jason Cobb
595f569e97
Update tests for interface inheritance 2020-01-22 09:40:40 -05:00
chriseth
0f014144c8 Test for true/false in inline assembly. 2020-01-14 17:16:09 +01:00
chriseth
4d681fb16d Merge remote-tracking branch 'origin/develop' into HEAD 2020-01-14 16:43:48 +01:00
Erik Kundt
729b47e641 Updates semantic tests to 0.7.0. 2020-01-11 23:11:00 +01:00
Daniel Kirchner
9535c0f520 Introduce FunctionKind::Declaration and allow accessing function signatures via contract name. 2020-01-09 15:40:41 +01:00
chriseth
670b719773 Updates to control structures (2).
Co-Authored-By: Bhargava Shastry <bhargava.shastry@ethereum.org>
2019-12-12 17:01:57 +01:00
chriseth
07d271e770 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-10 10:07:30 +01:00
Alex Beregszaszi
c9360421fc Move snark test from SolidityEndToEnd 2019-12-09 18:33:07 +00:00
chriseth
e061f1e743 Merge remote-tracking branch 'origin/develop' into HEAD 2019-12-05 16:44:26 +01:00
Mathias Baumann
b7d5de59c5 Implement overridding of functions by public variables 2019-12-05 12:48:52 +00:00
Gaith Hallak
4d90180e24 Support referencing other constants in inline assembly 2019-12-05 13:27:17 +03:00
chriseth
4365b665f4 Increase loop size to account for net storage gas metering. 2019-12-04 13:13:05 +01:00
Daniel Kirchner
7d1b0c6023 Fix Yul IR push 2019-11-28 18:11:38 +01:00
chriseth
b0db64ff5b Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-26 16:19:35 +01:00
Leonardo Alt
ce83bfb088 [Yul] Format string literals back to quoted string literals 2019-11-26 15:28:39 +01:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
chriseth
d5e9271592
Merge pull request #7350 from ethereum/array-length-rvalue
Make `length` member read-only
2019-11-21 19:22:42 +01:00
chriseth
8f2595957b
Merge pull request #7719 from ethereum/librarySignatuŕes
Add selector member to public and external library functions.
2019-11-20 18:43:14 +01:00
Leonardo Alt
389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +01:00
Erik Kundt
01705efb70 Adds and updates Yul tests for push() and pop(). 2019-11-20 12:04:47 +01:00
Daniel Kirchner
372df6b9e1 Implement array push and pop for yul and replace assignments in via yul tests. 2019-11-20 12:04:42 +01:00
Erik Kundt
7d6c0a50c2 Adjusts semantic tests to read-only array length. 2019-11-19 21:11:14 +01:00
Alex Beregszaszi
cbb08ae3db Add semantic test for SELFBALANCE in inline assembly 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
fc2af72a3d Add semantic test for CHAINID in inline assembly 2019-11-19 17:09:18 +01:00
chriseth
6797879128
Merge pull request #7647 from ethereum/virtual-5424
Implement virtual keyword
2019-11-19 13:21:27 +01:00
Daniel Kirchner
a0ae36ba70 Add selector member to public and external library functions. 2019-11-15 16:12:29 +01:00
chriseth
216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
Mathias Baumann
5b8ff78176 Implement virtual keyword 2019-11-14 11:49:39 +01:00
chriseth
c0cf96cbc1
Merge pull request #7699 from ethereum/test-require-str
Test `require` with string literals
2019-11-13 12:20:23 +01:00
Mathias Baumann
c74b1daef2 Test require with string literals
fixes #6651
2019-11-13 12:01:25 +01:00
Daniel Kirchner
ce7268272d Allow obtaining the address of a library by conversion to `address`. 2019-11-12 17:09:13 +01:00
Daniel Kirchner
c7e3318dba Add support for external libraries to extracted semantics tests. 2019-11-12 15:19:04 +01:00
Daniel Kirchner
3321fc56ea Split fallback function and introduce "fallback()" and "receive()" syntax. 2019-11-04 17:17:58 +01:00
Mathias Baumann
6c6a9054b2 Implement override checking 2019-10-30 17:31:33 +01:00
chriseth
499fe57d33 Tests 2019-10-29 14:32:16 +01:00
chriseth
f884373142 Merge branch 'origin/develop' into develop_060 2019-10-02 16:29:36 +02:00
Daniel Kirchner
7202ebb5b2 Fix internal compiler error for arrays of recursive structs. 2019-10-01 16:51:14 +02:00
Leonardo
9c23f35bec
Merge pull request #7462 from ethereum/version-060
Build version 0.6.0
2019-09-24 12:48:00 +02:00
Erik Kundt
e3a29ffcd3 Updates tests to version 0.6.0. 2019-09-24 12:01:14 +02:00
chriseth
b5d6d5fcf9 Create. 2019-09-23 17:22:56 +02:00
chriseth
644a402166 Tests. 2019-09-23 17:22:56 +02:00
Leonardo Alt
43d6e00b14 Add push() for dynamic storage arrays 2019-09-17 13:47:33 +02:00
chriseth
5b3efee93b
Merge pull request #7442 from ethereum/develop
Merge develop into develop_060
2019-09-17 12:16:27 +02:00
Leonardo Alt
eab9f65610 Fix ICE when pop dyn storage array of mapping 2019-09-16 16:33:17 +02:00
Daniel Kirchner
c72d1ffb65
Merge pull request #7421 from ethereum/develop
Merge develop into develop_060
2019-09-13 12:14:02 +02:00
Daniel Kirchner
4782c800ec Initial introduction of array slices with partial implementation for dynamic calldata arrays. 2019-09-13 10:57:53 +02:00
Erik Kundt
e92b921123 [isoltest] Adds support for fallback and ether functions. 2019-09-13 10:55:46 +02:00
chriseth
acf10ef60f
Merge pull request #7393 from ethereum/develop
Merge develop into 0.6.0
2019-09-10 12:27:02 +02:00
Erik Kundt
5e12e0cf27 [isoltest] Fixes auto-update for revert. 2019-09-09 22:46:43 +02:00
Daniel Kirchner
6f3341a204 Allow underscores in hex strings. 2019-09-06 17:58:35 +02:00
krk
33f7f960cf Allow exponentials with signed base and unsigned power. 2019-09-04 17:32:47 +02:00
chriseth
c499758cd8
Merge pull request #7326 from ethereum/develop
Merge develop into 0.6.0 branch.
2019-09-02 16:11:20 +02:00
Daniel Kirchner
872d21f527 Allow global struct definitions. 2019-09-02 11:17:42 +02:00
Erik Kundt
755dae5d66 [isoltest] Supports empty revert message. 2019-08-26 11:06:30 +02:00
Daniel Kirchner
9f6fff2120 Replace casting of external functions to address by a member named "address". 2019-08-19 14:56:04 +02:00
chriseth
2508cbc1eb
Merge pull request #7095 from ethereum/isoltest-failure-reason
[isoltest] Support FAILURE with reason
2019-08-15 11:37:56 +02:00
Erik Kundt
6c73bc5bac [isoltest] Refactors parameter formatting. 2019-08-14 21:28:43 +02:00
Erik Kundt
18157f5a49 [isoltest] Splits smoke test into separate files. 2019-08-14 21:28:43 +02:00
Erik Kundt
30483acc42 [isoltest] Support FAILURE with reason. 2019-08-14 21:28:43 +02:00
Daniel Kirchner
b0a5666b43 Better error messages when writing to expressions that cannot be written to. 2019-08-14 17:59:48 +02:00
mingchuan
15631a7fbe Split calldataEncodedSize into calldataEncodedSize, calldataEncodedTailSize and calldataHeadSize and fix all usages. 2019-08-08 15:52:21 +02:00
chriseth
d44f680a51
Merge pull request #7091 from ethereum/isoltest-value-format-fix
[isoltest] Fix (aligned) hex parsing and formatting
2019-08-07 17:55:37 +02:00
Erik Kundt
5ca991ac81 [isoltest] Allows odd-sized hex literals. 2019-08-07 17:19:27 +02:00
chriseth
c8f04b88bf
Merge pull request #7176 from ethereum/decodeMemoryLocation
Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode
2019-08-07 15:42:14 +02:00
Erik Kundt
e206ad6c24 [isoltest] Fixes hex (plus alignment) formatting. 2019-08-07 12:15:10 +02:00
Daniel Kirchner
efb34bdf22 Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode. 2019-08-06 14:11:14 +02:00
Erik Kundt
f914415fb2 [isoltest] Updates type retrieval from ABI and its formatting. 2019-08-05 16:15:07 +02:00
chriseth
9b375edfe3
Merge pull request #6787 from ethereum/sol2yul-ctor-code
Improve constructor-code codegen (wrt. state variable initialization)
2019-08-05 11:50:34 +02:00
Christian Parpart
235638b3fc Implements constructor code for state variables. 2019-08-05 11:23:01 +02:00
chriseth
7421d85346
Merge pull request #7094 from ethereum/isoltest-arrow-optional
[isoltest] Introduce shorthand declaration: make `->` optional.
2019-08-01 15:42:42 +02:00
Mathias Baumann
e887c06f6b FunctionType: Return correct stacksize for transfer/send 2019-08-01 13:56:09 +02:00
Christian Parpart
b6446aa615 Extracting more end-to-end tests. 2019-07-22 16:31:46 +02:00
Erik Kundt
8c51a089d7 isoltest: Makes -> declaration optional. 2019-07-22 13:25:11 +02:00
Erik Kundt
e269a0ff70 Adds constructor calls with ether value to isoltest. 2019-07-13 12:42:25 +02:00
Mathias Baumann
37f04976a2 [Sol->Yul] Implement keccak256 2019-07-09 18:25:07 +02:00
chriseth
15eb8fec50
Merge pull request #7015 from ethereum/sol-yul-arrays
[Sol->Yul] Implement uint256[] memory arrays
2019-07-09 17:34:46 +02:00
Mathias Baumann
0f24fcea17 [Sol->Yul] Implement uint256[] memory arrays 2019-07-09 15:36:02 +02:00
Christian Parpart
a9a56bc6dd
Extracting more end-to-end tests. 2019-07-08 16:04:52 +02:00
chriseth
60525dbf52
Merge pull request #7026 from ethereum/asmConstants
Support direct constants in inline assembly.
2019-07-02 14:21:24 +02:00
chriseth
cdd137e3d1 Support constant numbers in inline assembly. 2019-07-02 14:01:05 +02:00
Christian Parpart
62f6e4bad3 Extracting some Solidity end-to-end tests. 2019-07-01 15:37:46 +02:00
chriseth
f58bd5551e Test for sign bit chopping. 2019-06-25 13:00:02 +02:00
chriseth
350631ae0d
Merge pull request #6940 from ethereum/sol-yul-storage-array-index
[Sol->Yul] Implement index access for storage arrays
2019-06-24 12:49:19 +02:00
Mathias Baumann
1dd63f416e [Sol->Yul] Implement index access for storage arrays 2019-06-20 16:14:51 +02:00
chriseth
9bb7160c4c
Merge pull request #6958 from sifmelcara/fix-abiencoderv2-codegen
Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
2019-06-20 13:08:42 +02:00
Daniel Kirchner
fcd3410f26 Implement checked mod for sol->yul code generation. 2019-06-20 12:30:32 +02:00
Daniel Kirchner
a5b9f634ef Implement signed multiplication for sol->yul code generation. 2019-06-20 12:30:30 +02:00
Daniel Kirchner
5f6af8b374 Implement signed subtraction for sol->yul code generation. 2019-06-20 12:16:56 +02:00
Daniel Kirchner
88988af561 Implement signed addition for sol->yul code generation. 2019-06-20 11:42:50 +02:00
Mathias Baumann
910cb8d329 [Sol->Yul] Implement .length for storage arrays 2019-06-19 18:09:23 +02:00
mingchuan
13c1409669
Add test case that abi.encode nested storage arrays 2019-06-19 10:46:47 +08:00
Daniel Kirchner
2849169bff
Merge pull request #6909 from ethereum/yul-delete-operation
[Sol->Yul] Make IRStorageItem work with dynamic offsets
2019-06-12 16:46:00 +02:00
Mathias Baumann
9e23d6d05e [Sol->Yul] Compile some tests with yul 2019-06-11 17:44:36 +02:00
Anurag Dashputre
60332c6469 Extract semantic tests for
1. Transaction Status
2. Empty Contract
3. Smoke test for Range
2019-06-09 14:46:02 +02:00
chriseth
fbf189151d [SolYul] Division. 2019-05-27 17:53:46 +02:00
mingchuan
bf8af89bba
Fix assignment of struct containing array of mappings 2019-05-25 01:33:49 +08:00
Mathias Baumann
981983089c [Sol -> Yul] Implement delete for function pointers 2019-05-23 15:51:59 +02:00
Mathias Baumann
81702717b0 [Sol -> Yul] Enable function pointer comparison 2019-05-23 12:52:50 +02:00
chriseth
e324deabd6
Merge pull request #6740 from ethereum/unary-ops
[Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, !
2019-05-20 18:06:01 +02:00
Daniel Kirchner
b6f4d4e9bc [Sol - Yul] Implement checked multiplication. 2019-05-20 17:36:53 +02:00
Mathias Baumann
86000fdcce [Sol -> Yul] Implement unary -, + 2019-05-20 16:14:46 +02:00
Mathias Baumann
7dbcb80523 [Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, ! 2019-05-20 11:43:12 +02:00
Erik Kundt
94597ad9ae Adds support for constructor arguments in isoltest. 2019-05-15 12:01:14 +02:00
chriseth
5e5138869b Test. 2019-05-09 17:57:30 +02:00
Daniel Kirchner
b83f6d8d46 [Sol -> Yul] Implement if statements 2019-05-09 14:52:20 +02:00
Mathias Baumann
0abe00d393 [Sol -> Yul] Fix ForLoops and implement WhileLoops 2019-05-09 09:46:19 +02:00
chriseth
f61348728c
Merge pull request #6704 from ethereum/abiEncodeV2Cleanup
Add ABIEncoderV2 cleanup tests.
2019-05-09 09:30:58 +02:00
Daniel Kirchner
62dc8d0a87 Add ABIEncoderV2 cleanup tests. 2019-05-08 22:16:06 +02:00
chriseth
595544645e Mappings. 2019-05-08 15:54:52 +02:00
chriseth
5fb85a6118
Merge pull request #6662 from ethereum/msgSender
Implement most trivial members.
2019-05-08 13:28:43 +02:00
chriseth
ed450a31a3
Merge pull request #6696 from ethereum/sol-yul-while
Fix wrong test settings
2019-05-08 12:48:57 +02:00
Mathias Baumann
85b67d3820 Fix wrong test settings 2019-05-08 10:46:38 +02:00
chriseth
acca390ef5 Most trivial members. 2019-05-07 17:19:45 +02:00
chriseth
b99ad2aaa3
Merge pull request #6639 from ethereum/yul-require-assert
Yul generation of "require" and "assert"
2019-05-07 16:59:37 +02:00
chriseth
c604481cef Logical operators. 2019-05-07 15:59:35 +02:00
chriseth
3fa4c3da1e Comparison operations. 2019-05-07 12:35:05 +02:00
Mathias Baumann
7f14352bbf Yul generation of require and assert 2019-05-07 12:19:41 +02:00
chriseth
ad817ac630 Tests for string literals. 2019-05-07 11:55:18 +02:00
chriseth
49b1ff76ae Test file reorganisation. 2019-05-07 11:55:07 +02:00
chriseth
e12da81899
Merge pull request #6672 from ethereum/soltest-string-literals
[soltest] Add support for string literals
2019-05-07 11:54:54 +02:00
Erik Kundt
9956319e8b Adds support for string literals to soltest. 2019-05-07 11:36:38 +02:00
chriseth
aa4d4afcdc LValues and state variables of value type. 2019-05-02 17:03:22 +02:00
chriseth
f5f0804c19
Merge pull request #6504 from ethereum/soltest-interactive-update
[soltest] Improve interactive update routine
2019-05-02 16:41:52 +02:00
Erik Kundt
8103d22acf Takes type formats in isoltest from contract ABI. 2019-04-30 16:01:04 +02:00
chriseth
bab2391a7c Test case for loops. 2019-04-30 13:10:37 +02:00
chriseth
c1ca16cd33 Implement return. 2019-04-30 13:10:36 +02:00
chriseth
e8ba10bfaa
Merge pull request #6612 from ethereum/abi-functions-assertion
Unifies behaviour for member access of ABI functions
2019-04-29 15:02:40 +02:00
chriseth
3a19d83671
Merge pull request #6578 from ethereum/fix_base_overload
Fix call to base class overloaded functions
2019-04-29 14:33:52 +02:00
Erik Kundt
381ed5a302 Unifies behavior for member access of ABI functions. 2019-04-29 14:27:10 +02:00
Erik Kundt
c02257207b Removes assert on magic ABI functions during codegen. 2019-04-26 15:01:35 +02:00
Leonardo Alt
371b37b660 Fix direct call to base class overloaded functions 2019-04-26 09:34:15 +02:00
chriseth
00d81929b1
Merge pull request #6576 from ethereum/isoltest-evmversion-comparator
Allow additional EVMVersion comparators in isoltest
2019-04-25 17:37:46 +02:00
Erik Kundt
15d753a3e0 Allows additional EVMVersion comparators in isoltest. 2019-04-25 17:13:17 +02:00
chriseth
309d3e65cf
Merge pull request #6585 from ethereum/fixInvalidFunctionTags
Fix invalid function tags
2019-04-25 16:30:37 +02:00
chriseth
5b991c1e59 Fix use of uninitialized functions stored in storage. 2019-04-25 15:40:48 +02:00
Mathias Baumann
1ef213cc15 Sol -> Yul: Implement explicit cast 2019-04-24 22:52:17 +02:00
Mathias Baumann
944ac6fb6d Sol -> Yul Generation: Implicit conversions 2019-04-24 22:52:17 +02:00
Mathias Baumann
3d061c83d7 IR: Generate inline asm blocks 2019-04-18 16:49:19 +02:00
chriseth
565d9837e4 Virtual function calls. 2019-04-11 15:45:43 +02:00
chriseth
18ab8aeb85 Overflow-checked addition. 2019-04-11 15:45:14 +02:00
chriseth
3df4936b6f
Merge pull request #6179 from ethereum/solidity-yul1
Solidity to Yul compiler
2019-04-04 16:33:39 +02:00
chriseth
141c6da534 Semantic tests for compilation via Yul. 2019-04-04 15:02:43 +02:00
Daniel Kirchner
91a2a9a9c3 Implement ABI encoding of calldata arrays and structs. 2019-04-04 13:05:32 +02:00
chriseth
aeb260cde1 Add settings framework for interactive tests. 2019-04-03 14:58:20 +02:00
Daniel Kirchner
ab8dfed144 Implement copying recursive structs from storage to memory. 2019-04-02 16:01:44 +02:00
Christian Parpart
b8c6274179 [yul] Implements EVM codegen for break/continue plus respective tests & ChangeLog entry. 2019-03-28 14:09:25 +01:00
Mathias Baumann
84b68006ba Fix function calls with named arguments for overloaded functions 2019-03-20 14:54:41 +01:00
chriseth
2896d6176b
Merge pull request #6120 from ethereum/soltest-hex-strings
[soltest] Add support for hex string literals
2019-03-13 14:12:32 +01:00
Erik Kundt
25ddf85d95 Adds support for hex string literals in soltest. 2019-03-13 12:37:33 +01:00
Erik Kundt
39c45ac8ed Moves ecrecover tests to isoltest. 2019-03-13 10:53:10 +01:00
Daniel Kirchner
66fc7ffab2 Allow dynamically encoded calldata structs with ABIEncoderV2. 2019-03-11 16:40:13 +01:00
Erik Kundt
a40fbf0fc4 Right-aligns hex numbers and introduces alignment built-ins. 2019-03-06 18:24:13 +01:00
Erik Kundt
f683ceb3f8 Adds support for boolean literals in soltest. 2019-02-21 23:28:48 +01:00
Erik Kundt
d40928f5fc Adds support for hex literals in soltest. 2019-02-21 17:04:40 +01:00
Erik Kundt
dacad629ef Adds semantic tests to test framework and isoltest. 2019-02-15 13:27:15 +01:00