Commit Graph

4719 Commits

Author SHA1 Message Date
Alex Beregszaszi
5ecc84e92e Distinguish between stringLiteral and hexStringLiteral in the JSON AST 2020-07-27 10:19:24 +01:00
chriseth
2c574af45b Fix conversion bug for exp operation. 2020-07-27 10:44:42 +02:00
chriseth
1a1960ede0
Merge pull request #9466 from ethereum/fixTokens
Properly sort token list.
2020-07-27 10:42:31 +02:00
chriseth
7ff3d10fee
Merge pull request #9492 from ethereum/someValueTests
Some more tests for value.
2020-07-23 19:09:28 +02:00
Leonardo Alt
95484d9969 Fix tests after rebase 2020-07-23 18:49:03 +02:00
Leonardo Alt
d70ebbb62d Remove problematic test 2020-07-23 18:49:03 +02:00
Leonardo Alt
5bb4e73693 Review 1 2020-07-23 18:49:03 +02:00
Leonardo Alt
003c9b9a5b Update tests 2020-07-23 18:49:03 +02:00
chriseth
80d704891c
Merge pull request #9493 from ethereum/fix-gnosis
Force upgrade package-lock
2020-07-23 18:00:12 +02:00
chriseth
8607bfdfaa
Merge pull request #9007 from a3d4/fix-8727-no-return-optimizer-error
Report an error if immutables not assigned
2020-07-23 16:50:42 +02:00
chriseth
95c8f41ddf
Merge pull request #9489 from ethereum/fixStackLit
Fix handling of long literal arguments in the stack compressor.
2020-07-23 16:49:39 +02:00
a3d4
5b54cfbed3 Report an error if immutables not assigned 2020-07-23 16:38:54 +02:00
Harikrishnan Mulackal
bde0728b9b Force upgrade package-lock 2020-07-23 20:05:14 +05:30
chriseth
336fe94422
Merge pull request #9426 from ethereum/smt_fix_1_tuple
[SMTChecker] Fix ICE in 1-tuple chain
2020-07-23 15:38:17 +02:00
chriseth
4f611fbf17 Some more tests for value. 2020-07-23 14:57:47 +02:00
chriseth
a1da90d14b Adding more tests for function types 2020-07-23 14:55:32 +02:00
Djordje Mijovic
e7d5a7da10 [TypeChecker] Remove function input and return parameter names from mobileType 2020-07-23 14:39:49 +02:00
chriseth
8cfbe02cc0 Fix token list. 2020-07-23 14:28:28 +02:00
chriseth
fc34c81f4c Test for long object names in optimizer. 2020-07-23 14:03:51 +02:00
Leonardo Alt
9d2a0947e9 Fix 1-tuple chain 2020-07-23 13:46:41 +02:00
chriseth
845c1ae91f
Merge pull request #9469 from ethereum/fix-9468
Yul fuzzer: Enable nested object references
2020-07-23 13:26:42 +02:00
chriseth
6bb6783d39 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-22 15:26:44 +02:00
Bhargava Shastry
115380ca76 Yul fuzzer: Enable nested object references
Co-authored-by: Đorđe Mijović <djordje.mijovic@gmail.com>
2020-07-22 14:02:41 +02:00
chriseth
0dc111bac9
Merge pull request #9463 from a3d4/improve-error-coverage-only-one-receive
Add "Only one receive function is allowed"-error to syntax tests
2020-07-22 10:40:49 +02:00
chriseth
8339ee4122
Merge pull request #9423 from ethereum/runtimeCodeSol2Yul
[Sol->Yul] Supporting .runtimeCode
2020-07-22 09:51:07 +02:00
chriseth
cb1f7a8410
Merge pull request #9235 from ethereum/yulSubObjectAccessWithDot
Yul sub object access with dot
2020-07-22 09:50:41 +02:00
a3d4
7e0a291fac Add "Only one receive function is allowed"-error to syntax tests 2020-07-22 04:09:24 +02:00
Djordje Mijovic
546e9af24d [Sol->Yul] Supporting .runtimeCode 2020-07-21 17:56:37 +02:00
Djordje Mijovic
6f97e6153c [yul] Adding support for accessing subobjects via .
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-21 17:56:11 +02:00
Bhargava Shastry
18fbbfa5ca Fuzzer: Count step by number of interpreted statements
Co-authored-by: chriseth <chris@ethereum.org>
2020-07-21 15:38:02 +02:00
chriseth
8b7567f963 Fix merge conflicts. 2020-07-21 15:06:57 +02:00
Bhargava Shastry
4067bab7dd Add corpus based multi source fuzzer
Co-authored-by: Leonardo <leo@ethereum.org>
2020-07-21 13:43:29 +02:00
chriseth
e19e4d9db1
Merge pull request #9451 from ethereum/smt_fix_push_push
[SMTChecker] Fix push().push()
2020-07-21 11:40:37 +02:00
chriseth
9be5ed1220 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-21 11:35:28 +02:00
a3d4
ecdfef1b30 Replace grave accent with acute accent 2020-07-21 00:18:47 +02:00
chriseth
e7f26c2320
Merge pull request #9218 from ethereum/issue-8911
Natspec: Implement inheritance and @inheritdoc
2020-07-20 18:44:13 +02:00
chriseth
10f93fbd8a
Merge pull request #9428 from ethereum/removeVar
Remove special treatment of ``var``.
2020-07-20 18:43:44 +02:00
chriseth
2c7359de1e
Merge pull request #9394 from ethereum/fix-9391
Yul interpreter: Return addresses of type u160 for create and create2…
2020-07-20 18:38:43 +02:00
Mathias Baumann
ba0a4de50d NatSpec: Implement `@inheritdoc` 2020-07-20 18:32:18 +02:00
chriseth
93c792c696 Remove special treatment of `var`. 2020-07-20 17:22:04 +02:00
Leonardo Alt
2c93278719 Fix push().push() 2020-07-20 17:17:35 +02:00
chriseth
8bdd93f4b8 Update tests. 2020-07-20 17:17:19 +02:00
chriseth
50a54fa8aa Implement inline arrays. 2020-07-20 17:06:32 +02:00
chriseth
ac95e98b2b
Merge pull request #9449 from ethereum/fixEnforceViaYul
Fix enforce via yul
2020-07-20 17:01:42 +02:00
chriseth
1c9179683e
Merge pull request #9433 from ethereum/reportAllStackErrors
Report all stack errors
2020-07-20 15:44:51 +02:00
chriseth
0a25370eeb Update tests. 2020-07-20 15:40:58 +02:00
Mathias Baumann
446d15488c Update tests for new public var override rules 2020-07-20 15:18:23 +02:00
chriseth
c8772a54c3 Constants are considered pure. 2020-07-20 15:18:23 +02:00
chriseth
d3647b13e4 Disallow public state variables overriding pure functions. 2020-07-20 15:18:23 +02:00
Mathias L. Baumann
69a596b0ff
Merge pull request #9418 from ethereum/stateMutForOverride
Issue state mutability restriction for overriding and not for virtual functions.
2020-07-20 15:01:25 +02:00
chriseth
53bc0ff18e Fix "enforce via yul". 2020-07-20 14:52:31 +02:00
Bhargava Shastry
deffb7ffc8 Yul interpreter: Return addresses of type u160 for create and create2 calls 2020-07-20 11:26:47 +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
Leonardo Alt
2e1067a05a Set type properly for event parameters 2020-07-17 11:17:27 +02:00
chriseth
ba21d26f88
Merge pull request #9344 from ethereum/issue-3412
Allow overrides to have a more strict mutability than super
2020-07-16 18:50:51 +02:00
Mathias Baumann
dfffecfe2c Allow overrides to have a more strict mutability than super 2020-07-16 17:55:12 +02:00
Leonardo Alt
672633af0a [SMTChecker] Fix ICE on compound assignment to array index 2020-07-16 17:44:10 +02:00
Daniel Kirchner
579e4b5a69 Report all stack errors in the EVM code transform. 2020-07-16 17:38:04 +02:00
chriseth
aa3f51ab47 Issue state mutability restriction for overriding and not for virtual functions. 2020-07-16 17:19:35 +02:00
chriseth
f945163909
Merge pull request #9432 from ethereum/develop
Merge develop into breaking.
2020-07-16 17:14:45 +02:00
Mathias Baumann
d3af598c49 CodeGen: Avoid double cleanup when copying to memory 2020-07-16 13:53:48 +02:00
Mathias Baumann
f47981d484 Prepare testcase for avoiding double cleanup 2020-07-16 13:53:46 +02:00
Leonardo Alt
46653b2d43 Fix ICE when bitwise operator on fixed bytes 2020-07-15 19:32:15 +02:00
chriseth
dca85a286d
Merge pull request #9398 from ethereum/eip615
Prefix EIP-615 opcodes with EIP615 in Instructions
2020-07-14 19:18:02 +02:00
Alex Beregszaszi
eab12ecf77 Nicer error message for private payable functions 2020-07-14 14:38:12 +01:00
chriseth
526e7b878b
Merge pull request #9403 from ethereum/string-tests
Add more tests for strings with unicode (escapes)
2020-07-14 13:49:06 +02:00
chriseth
f93932c259
Merge pull request #9406 from ethereum/fixSegfault
Fix segfault in oversized objects check in combination with var.
2020-07-14 13:30:33 +02:00
Daniel Kirchner
874f4d5447
Merge pull request #9407 from ethereum/refactorStorageSizeUpperBound
Refactor storageSizeUpperBound.
2020-07-14 12:17:45 +02:00
Daniel Kirchner
9c62ea182d Fix segfault in oversized objects check in combination with var. 2020-07-14 11:23:39 +02:00
chriseth
f28bede34a Refactor storageSizeUpperBound. 2020-07-14 10:45:02 +02:00
Harikrishnan Mulackal
f73b25bb78 Removed specialized errors related to constant state mutability 2020-07-14 12:42:47 +05:30
Alex Beregszaszi
950612cf42 Add more tests for strings with unicode (escapes) 2020-07-13 20:43:30 +01:00
Alex Beregszaszi
6a1ad7e59c Fix formatting hex strings in isoltest update 2020-07-13 19:06:16 +01:00
Alex Beregszaszi
870ea98c21 Prefix EIP-615 opcodes with EIP615 in Instructions 2020-07-13 17:34:19 +01:00
chriseth
289fc7a9d0
Merge pull request #9371 from ethereum/refactorInterpreter
Refactor yul interpreter.
2020-07-13 18:27:47 +02:00
Daniel Kirchner
41710acbca More semantic tests. 2020-07-13 18:07:11 +02:00
Daniel Kirchner
c3e13b6733 Promote gwei to a proper keyword. 2020-07-13 18:07:11 +02:00
Daniel Kirchner
38c6ecbbe2 Remove finney and szabo denominations. 2020-07-13 18:07:10 +02:00
chriseth
cf189a3285
Merge pull request #9285 from ethereum/no_dot_in_asm
[BREAKING] Change _slot and _offset to use dot in inline assembly
2020-07-13 17:46:39 +02:00
Daniel Kirchner
def0ebbb3e Free variables directly after visiting RHS of Variable Declarations during EVMCodeTransform. 2020-07-13 17:36:15 +02:00
chriseth
414e3bd6fe
Merge pull request #9387 from ethereum/swapDup
Remove swap after dup.
2020-07-13 17:27:43 +02:00
chriseth
12f390a60a
Merge pull request #9326 from ethereum/eventOverwriting
[BREAKING] Disallow multiple events with same name and types.
2020-07-13 15:44:35 +02:00
chriseth
080f33a72c Remove swap after dup. 2020-07-13 15:05:01 +02:00
chriseth
1d666335f8
Merge pull request #9367 from ethereum/wasm-dialect
Add ctz and popcnt to WasmDialect
2020-07-13 15:02:34 +02:00
chriseth
fc2e9ec2ff Use .slot and .offest to access storage items. 2020-07-13 14:59:22 +02:00
chriseth
8eee3ed3a2
Merge pull request #9388 from ethereum/develop
Merge develop into breaking.
2020-07-13 14:55:21 +02:00
Djordje Mijovic
a72b0deea6 Disabling -Wsign-conversion for yul_proto_diff_custom_mutate_ossfuzz target 2020-07-13 14:01:53 +02:00
Alex Beregszaszi
8df4baac42 Implement ctz/popcnt in yulInterpreter 2020-07-13 11:18:10 +01:00
chriseth
c90d3a3558
Merge pull request #9384 from ethereum/yul-err-typo
Fix missing quote in error message for invalid Yul types
2020-07-13 11:28:55 +02:00
chriseth
b3566ad0d5
Merge pull request #9082 from ethereum/conversionWarnings
Adding `-Wsign-conversion` flag and fixing errors
2020-07-13 11:28:09 +02:00
chriseth
ab2f64f442 Disallow multiple events with same name and types. 2020-07-13 11:24:37 +02:00
Daniel Kirchner
c8f25142a7 Add nooptions label to smt checks. 2020-07-11 20:17:12 +02:00
Alex Beregszaszi
20dd66f398 Fix missing quote in error message for invalid Yul types 2020-07-10 21:06:09 +01:00
Daniel Kirchner
65ed93d99f
Merge pull request #9366 from ethereum/wasm-clz
Fix yulInterpreter to correctly handle i32.clz
2020-07-10 20:36:24 +02:00
Alex Beregszaszi
f5ae9c5761 Fix yulInterpreter to correctly handle i32.clz 2020-07-10 15:38:25 +01:00
a3d4
efc5ee207d Fix internal compiler error caused by oversized objects 2020-07-10 11:39:07 +02:00
Djordje Mijovic
3781ee6349 Removing -Wsign-conversion flag for ossfuzz targets 2020-07-09 17:22:52 +02:00
Djordje Mijovic
547590b972 Fixing additional signedness errors after adding -Wsign-conversion flag
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-09 17:22:45 +02:00
Mathias Baumann
6b37f1c025 Remove visiblity of libraries in inherited contracts. 2020-07-09 16:38:29 +02:00
chriseth
82b66c7687
Merge pull request #9372 from a3d4/improve-error-coverage-cmdlinetests
Cover cmdlineTests.sh errors
2020-07-09 16:17:00 +02:00
chriseth
9ef050af9a
Merge pull request #9373 from ethereum/develop
Merge develop into breaking.
2020-07-09 16:15:43 +02:00
chriseth
2b94ced65f
Merge pull request #8305 from ethereum/fix-7947
yul proto fuzzer: Use custom mutation routines
2020-07-09 15:40:16 +02:00
chriseth
8b52985744
Merge pull request #9357 from ethereum/fix-9356
Disable more than one reference to a variable on the LHS of a tuple a…
2020-07-09 15:27:04 +02:00
chriseth
3cf5ed9514 Use plain strings for comparison. 2020-07-09 15:00:13 +02:00
chriseth
ec2393d3b6 Refactor interpreter. 2020-07-09 15:00:13 +02:00
a3d4
a068583bec Cover cmdlineTests.sh errors 2020-07-09 14:39:05 +02:00
Bhargava Shastry
7272129354 yul fuzzer: Add framework for yul optimizer custom mutation routines
Co-authored-by: Leonardo <leo@ethereum.org>
2020-07-09 13:32:07 +02:00
chriseth
f3e100a000
Merge pull request #9359 from ethereum/doNotRunAllTests
Do not run tests that do not need options multiple times.
2020-07-08 22:19:46 +02:00
chriseth
59f4989966 Optimize combination of byte and shl. 2020-07-08 20:26:46 +02:00
chriseth
ecc4bf2464
Merge pull request #9354 from ethereum/improveTestSpeed
Improve testing speed by only enabling the Yul optimizer if needed.
2020-07-08 19:54:32 +02:00
chriseth
8eb459c825 Disallow dot in inline assembly identifiers. 2020-07-08 19:29:58 +02:00
chriseth
d4ecd33247 Propagate function call argument types across function call options. 2020-07-08 17:59:02 +01:00
chriseth
83337c850e Do not run tests that do not need options multiple times. 2020-07-08 18:47:14 +02:00
chriseth
0c7e4cf16b
Merge pull request #9340 from ethereum/compileTimeSha
Evaluate keccak256 of string literals at compile-time.
2020-07-08 18:42:38 +02:00
chriseth
19ec9ecbfd
Merge pull request #9347 from ethereum/moretests
Add create & delete array tests for yul
2020-07-08 18:09:57 +02:00
chriseth
0a0f578d7c Evaluate keccak256 of string literals at compile-time. 2020-07-08 16:14:14 +02:00
Bhargava Shastry
48ac4b2954 Disable more than one reference to a variable on the LHS of a tuple assignment 2020-07-08 13:16:07 +02:00
Mathias Baumann
f9d6fa71fd Add create & delete array tests for yul 2020-07-08 13:10:33 +02:00
chriseth
5ebf2b84ef Improve testing speed by only enabling the Yul optimizer if needed. 2020-07-08 10:51:42 +02:00
chriseth
64b6524bdb Merge remote-tracking branch 'origin/develop' into breaking 2020-07-08 09:37:14 +02:00
Kamil Śliwak
b23f7d8790 [yul-phaser] Temporarily disable very slow tests for the classic algorithm 2020-07-07 17:14:57 +02:00
chriseth
41e1e34211
Merge pull request #9180 from ethereum/noVisibilityForConstructor
[BREAKING] No visibility for constructor
2020-07-07 16:26:41 +02:00
Alex Beregszaszi
0bd6fb027b Update tests 2020-07-07 13:13:58 +01:00
chriseth
ec8be81258
Merge pull request #9243 from ethereum/jumpTypesForYul
Jump types for yul functions.
2020-07-07 12:21:14 +02:00
chriseth
552d353430 New tests. 2020-07-07 12:16:18 +02:00
chriseth
5959d442cb Make visibility optional, but it has to be consistent. 2020-07-07 12:16:18 +02:00
chriseth
9743390a53 Update tests. 2020-07-07 12:16:18 +02:00
Alex Beregszaszi
beb4b1d563 Fix tests on breaking 2020-07-07 10:17:58 +01:00
chriseth
d72aae20aa
Merge pull request #9321 from ethereum/multiYulAssign
Disallow the same yul variable occurring multiple times on the LHS of an assignment.
2020-07-07 11:07:05 +02:00
chriseth
2e9933b0de
Merge pull request #9320 from ethereum/tests_for_memory_in_external.sol
Tests for memory in external functions.
2020-07-07 11:05:50 +02:00
Daniel Kirchner
70615a73a4 Disallow the same yul variable occurring multiple times on the LHS of an assignment. 2020-07-07 10:52:47 +02:00
chriseth
e48d3e5847 Fix wording of error message. 2020-07-06 19:22:52 +02:00
chriseth
982a269b2b
Merge pull request #9325 from ethereum/develop
Merge develop into breaking.
2020-07-06 19:11:02 +02:00
chriseth
a09a791999
Merge pull request #9313 from ethereum/doesnt
[Trivial] Replace "doesn't" with "does not" in error message
2020-07-06 18:21:02 +02:00
chriseth
4d2b9cd38f Jump types for yul functions. 2020-07-06 18:12:54 +02:00
chriseth
9009335b3f
Merge pull request #9319 from ethereum/noCalldataForConstructor
Constructors cannot have calldata parameters.
2020-07-06 17:58:23 +02:00
chriseth
c0adf2bb4c Tests for memory in external functions. 2020-07-06 17:08:24 +02:00
chriseth
f372ba6fea Constructors cannot have calldata parameters. 2020-07-06 16:52:51 +02:00
Alex Beregszaszi
60d4b1e8cc Rename drop to i64.drop in WasmDialect
Also properly implement support for both i32.drop and i64.drop in BinaryTransform, TextTransform, and YulInterpreter
2020-07-06 15:47:17 +01:00
chriseth
375cb09341
Merge pull request #9316 from ethereum/yul-cleanup-evm
Tiny cleanups to EVMDialect in Yul
2020-07-06 16:14:24 +02:00
chriseth
083ef2d685
Merge pull request #9311 from a3d4/improve-large-variable-size-warning
Add variable name to the "Variable covers ...." warning
2020-07-06 15:31:33 +02:00
chriseth
ab68406006 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-06 15:25:25 +02:00
a3d4
5e4aeaa460 Add variable name to the "Variable covers a large part of storage ...." message 2020-07-06 13:49:09 +02:00
Mathias Baumann
8cdf14f1b3 Replace "doesn't" with "does not" in error message 2020-07-06 13:44:33 +02:00
Alex Beregszaszi
f0d256bfdb Add test case for jumpi in inline assembly 2020-07-06 10:41:35 +01:00
Daniel Kirchner
b9b24daa8a
Merge pull request #9295 from ethereum/requireFLIR
Require for loop init rewriter for SSA.
2020-07-04 17:51:57 +02:00
chriseth
711ed588d7 Require for loop init rewriter for SSA.
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-07-03 19:24:31 +02:00
Alex Beregszaszi
0ac039e4ea
Merge pull request #9305 from ethereum/yul-dot-tests
Add Yul syntax tests for dots in identifiers
2020-07-03 18:18:58 +01:00
Alex Beregszaszi
889131321a
Merge pull request #9298 from ethereum/yul-evm-version-tests
Use different error code for various EVM features in Yul
2020-07-03 17:05:01 +01:00
a3d4
46bcac58eb
Merge pull request #9187 from a3d4/fix-storagesizeestimate
Fixed recursive check in structureSizeEstimate
2020-07-03 17:35:11 +02:00