chriseth
f3c4f466f6
Merge remote-tracking branch 'origin/develop' into develop_060
...
Had to adjust gas costs during merge.
2019-09-24 10:28:22 +02:00
chriseth
b5d6d5fcf9
Create.
2019-09-23 17:22:56 +02:00
chriseth
b5bc52f2a7
Control flow for try statements.
2019-09-23 17:22:56 +02:00
chriseth
644a402166
Tests.
2019-09-23 17:22:56 +02:00
chriseth
bfc8fd23ac
Document chainid and selfbalance.
2019-09-19 15:35:37 +02:00
Leonardo Alt
ed9674be8d
[SMTChecker] Add as const function to SMTLib2Interface
2019-09-18 22:57:14 +02:00
chriseth
5a950908b6
Merge pull request #7432 from ethereum/fix-ossfuzz-build
...
ossfuzz: Create a separate cmake toolchain file for ossfuzz
2019-09-17 15:24:50 +02:00
chriseth
7c774c3a4b
Merge pull request #7444 from ethereum/solc-fuzzer-add-evmversion
...
solc fuzzer: Use randomly chosen evm version
2019-09-17 15:23:17 +02:00
Leonardo Alt
43d6e00b14
Add push() for dynamic storage arrays
2019-09-17 13:47:33 +02:00
Bhargava Shastry
9b31d72f43
solc fuzzer: Use randomly chosen evm version
2019-09-17 13:43:22 +02:00
mingchuan
520a3ccfff
[YulOpt] declare SSA var when control flow joins
2019-09-17 13:22:02 +02:00
chriseth
5859a69c44
Merge pull request #7409 from ethereum/forLoopOutOfBody
...
[Yul] Move for loop condition out of body.
2019-09-17 12:58:56 +02:00
chriseth
68986a58b6
Test.
2019-09-17 12:32:46 +02:00
chriseth
7a79742f3d
Out of body again.
2019-09-17 12:30:15 +02:00
chriseth
5b3efee93b
Merge pull request #7442 from ethereum/develop
...
Merge develop into develop_060
2019-09-17 12:16:27 +02:00
chriseth
58f0f9dbea
Merge pull request #7417 from ethereum/fix-7355-v2
...
Update logic to track dynamically encoded parameters
2019-09-17 11:43:37 +02:00
Bhargava Shastry
48da5f07a5
ossfuzz: Create a separate cmake toolchain file for ossfuzz so that multiple fuzzing backends may be used
2019-09-16 18:35:15 +02:00
Leonardo Alt
eab9f65610
Fix ICE when pop dyn storage array of mapping
2019-09-16 16:33:17 +02:00
Bhargava Shastry
403fb7d88c
Update logic to track dynamically encoded parameters
2019-09-16 14:25:37 +02:00
Leonardo Alt
d685554980
Create option for metadata hash
2019-09-13 18:59:12 +02:00
chriseth
2d601a4f23
Merge pull request #7414 from ethereum/refactorSSA
...
Refactor SSA transform.
2019-09-13 17:55:39 +02:00
Leonardo Alt
e1c238e25f
[SMTChecker] Add loop support
2019-09-13 12:40:53 +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
Erik Kundt
ad5fe2bf45
Fixes codespell.
2019-09-12 22:15:03 +02:00
chriseth
50ce3b0ac8
Merge pull request #7420 from ethereum/develop
...
Merge develop into develop_060
2019-09-12 22:06:55 +02:00
chriseth
192946c1ba
Merge pull request #7413 from ethereum/ossfuzz-link-correctly
...
Link ossfuzz targets with -fsanitize=fuzzer instead of libFuzzingEngine
2019-09-12 20:22:53 +02:00
chriseth
20bada4c60
Refactor SSA transform.
2019-09-12 20:07:39 +02:00
Daniel Kirchner
f86c5da202
Fix SSA reverser in special case of declaration followed by self-assignment.
2019-09-12 18:17:13 +02:00
Bhargava Shastry
a7c987d931
Link ossfuzz targets with -fsanitize=fuzzer instead of libFuzzingEngine supplied by docker image
2019-09-12 11:26:05 +02:00
chriseth
4f80117eef
Use builtin iszero for for loop condition rewriting.
2019-09-12 10:26:16 +02:00
chriseth
fcfe829534
Introduce LiteralRematerializer and thus simplify StructuralSimplifier.
2019-09-11 19:50:24 +02:00
chriseth
a064e0fc97
Merge pull request #7236 from ethereum/proto-add-object-access
...
Experimental support for object access builtins
2019-09-11 18:28:10 +02:00
chriseth
e9346ca38a
Merge pull request #7400 from ethereum/evmoneSearch
...
Fix evmone filename for auto-discovery for windows and macos.
2019-09-11 17:55:12 +02:00
chriseth
b962f58973
Merge pull request #7405 from ethereum/isoltest-format-fix
...
[isoltest] Add fallback formatting
2019-09-11 17:52:11 +02:00
Christian Parpart
e528c65c04
Merge pull request #7404 from ethereum/develop
...
Merge develop into 0.6.0
2019-09-11 15:49:38 +02:00
Erik Kundt
4162c3d7af
[isoltest] Adds fallback formatting.
2019-09-11 15:45:53 +02:00
Daniel Kirchner
2535091168
Replace preprocessor macros with constexpr expressions.
2019-09-11 13:03:05 +02:00
Christian Parpart
ccdca32f39
isoltest: Fixes matching tests on platforms that don't use forward slahes as path separators.
2019-09-11 12:53:20 +02:00
Flash Sheridan
733d40ddb5
Fix evmone filename for auto-discovery for windows and macos.
2019-09-11 12:28:05 +02:00
Bhargava Shastry
34022a2c8c
Pseudo-randomly choose object/data identifier that is in scope
2019-09-11 10:57:54 +02:00
Bhargava Shastry
d677a15507
Add object access builtin functions
2019-09-11 10:57:54 +02:00
chriseth
143e867353
Merge pull request #7390 from ethereum/sloadTest
...
Load resolver involving staticcall.
2019-09-10 13:25:15 +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
chriseth
20f6fbf88e
Load resolver involving staticcall.
2019-09-10 12:09:13 +02:00
chriseth
ca0b38c8a3
Merge pull request #7327 from winsvega/newopcodes
...
add chainid and selfbalance to lllc
2019-09-10 12:00:26 +02:00
Leonardo Alt
5cfe0b7670
Allow explicit conversion from address to address payable
2019-09-09 23:46:00 +02:00
Erik Kundt
5e12e0cf27
[isoltest] Fixes auto-update for revert.
2019-09-09 22:46:43 +02:00
Dimitry
fd3ae0b24a
add chainid and selfbalance to lllc
2019-09-09 23:35:36 +03:00
Bhargava Shastry
09fa31ccc5
yul: Add new optimizer rules for create and create2 builtins
2019-09-09 17:06:56 +02:00
chriseth
96b6b45658
Merge pull request #7324 from ethereum/activateLoadResolver
...
[Yul] Activate load resolver.
2019-09-09 16:45:41 +02:00
chriseth
a272506a34
Merge pull request #7374 from ethereum/hexStringUnderscores
...
Allow underscores in hex strings.
2019-09-09 11:48:46 +02:00
Bhargava Shastry
e349fb1ce1
Abiv2 proto fuzzer: Crop at least 32 bytes if last dynamically encoded parameter is right padded
2019-09-09 10:07:30 +02:00
Daniel Kirchner
6f3341a204
Allow underscores in hex strings.
2019-09-06 17:58:35 +02:00
chriseth
9c72f25cce
Merge pull request #7368 from ethereum/errorReporter
...
Switch to new error reporter.
2019-09-06 15:53:29 +02:00
Daniel Kirchner
f4d990e5be
Drop constant and payable fields from ABI.
2019-09-06 14:42:09 +02:00
Daniel Kirchner
94ce0462ba
Add backup extension to all sed commands in the command line tests for OSX sed.
2019-09-06 14:19:49 +02:00
Daniel Kirchner
998f7de2c8
Change command line test from --ast to --ast-json.
2019-09-06 13:46:18 +02:00
Daniel Kirchner
f84371b2e0
Fix command line tests for new error reporter.
2019-09-06 13:31:57 +02:00
chriseth
ea0a952a69
Merge pull request #7362 from ethereum/develop
...
Merge develop into develop_060
2019-09-05 16:50:44 +02:00
Daniel Kirchner
9bcaeef39f
Fix test wrt changed json ABI sorting.
2019-09-05 13:39:23 +02:00
chriseth
7f797bc6ae
Merge pull request #7342 from ethereum/extendedMemorySizeInterpreter
...
Make memory addresses wrap in interpreter.
2019-09-05 13:14:57 +02:00
Bhargava Shastry
137a898eca
Yul proto fuzzer: Fix typo in low level call
2019-09-04 21:14:26 +02:00
chriseth
fd687f50ff
Merge pull request #7353 from ethereum/develop
...
Update 0.6.0 from develop
2019-09-04 20:21:37 +02:00
chriseth
5b4b4011c7
Extend memory beyond 32 byte addresses in interpreter.
2019-09-04 20:10:42 +02:00
chriseth
633932c5f1
Update tests.
2019-09-04 19:16:54 +02:00
Bhargava Shastry
c889e6e015
Yul proto fuzzer: Add create and call opcodes
2019-09-04 19:13:40 +02:00
Bhargava Shastry
6b27ef8fcb
Yul proto fuzzer: Additional blockchain opcodes
2019-09-04 19:13:40 +02:00
krk
33f7f960cf
Allow exponentials with signed base and unsigned power.
2019-09-04 17:32:47 +02:00
chriseth
7dd77784b7
Merge pull request #7335 from ethereum/abiSorting
...
Change ABI sorting order.
2019-09-04 17:18:27 +02:00
chriseth
8485a1abec
Change ABI sorting order.
2019-09-04 13:06:09 +02:00
Bhargava Shastry
fce65ec811
Randomize calldataload and storage slots and use dictionary tokens as function argument
2019-09-04 09:54:57 +02:00
Bhargava Shastry
d066ba71a4
Force call of every valid func declaration
2019-09-04 09:54:57 +02:00
Bhargava Shastry
4837ef4ada
Yul proto fuzzer: Make function definition a statement
2019-09-04 09:54:36 +02:00
Alex Beregszaszi
dce52509b4
Merge pull request #7329 from ethereum/istanbul
...
Introduce istanbul and berlin versions
2019-09-03 15:18:14 +01:00
chriseth
ea4ea5ae5d
Merge pull request #7333 from ethereum/yulopti_add_load_resolver
...
Add Load Resolver to Yulopti
2019-09-03 16:12:31 +02:00
chriseth
ebd16eb142
Merge pull request #7321 from ethereum/smt_const_array
...
[SMTChecker] Zero-initialize arrays
2019-09-03 15:51:59 +02:00
Leonardo Alt
d131784714
Add Load Resolver to Yulopti
2019-09-03 15:51:33 +02:00
chriseth
6e4e54cbc6
Merge pull request #7309 from ethereum/yulproto-refactor
...
Yul proto fuzzer: Do not shadow variables
2019-09-03 12:29:13 +02:00
chriseth
029941a168
Merge pull request #7251 from ethereum/sideEffectsForUserDefinedFunctions
...
Side effects for user defined functions
2019-09-03 12:10:56 +02:00
Bhargava Shastry
6427ec661a
Yul interpreter: Out of bounds mloads return zero
2019-09-03 09:51:15 +02:00
Leonardo Alt
a774b2d905
[SMTChecker] Zero-initialize arrays
2019-09-02 22:37:30 +02:00
chriseth
55024d40fe
Test updates.
2019-09-02 17:41:51 +02:00
chriseth
127bcfc69d
Take user function side-effects into account for unused pruner.
2019-09-02 17:41:51 +02:00
chriseth
1c5845e3f2
Side-effects of user-defined functions.
2019-09-02 17:41:51 +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
Bhargava Shastry
bcf0c1810c
Yul proto fuzzer: Do not reuse variable names
2019-09-02 15:23:10 +02:00
chriseth
9a6357ab09
Merge pull request #7188 from ethereum/abiv2-use-bytes-string-longer-than-32-bytes
...
Abiv2 use bytes string longer than 32 bytes
2019-09-02 15:05:43 +02:00
chriseth
bdf29277a2
Change interpreter memory to be non-contiguous.
2019-09-02 13:51:47 +02:00
Bhargava Shastry
46a133e848
Generate bytes and string literals that are longer than 32 bytes
2019-09-02 12:43:47 +02:00
Daniel Kirchner
467d420f7e
ABI and AST tests.
2019-09-02 12:23:21 +02:00
chriseth
a988b64597
Merge pull request #7312 from ethereum/fixInterpreterScopes
...
Fix handling of scopes in Yul Interpreter.
2019-09-02 12:05:33 +02:00
Daniel Kirchner
2b938d703c
Allow global enum definitions.
2019-09-02 11:52:51 +02:00
Bhargava Shastry
3963d0ca02
Create bytes/string values of shorter than 32 bytes and adjust invalid encoding length accordingly
2019-09-02 11:30:38 +02:00
Daniel Kirchner
fae0e10d26
Import tests.
2019-09-02 11:17:57 +02:00
Daniel Kirchner
872d21f527
Allow global struct definitions.
2019-09-02 11:17:42 +02:00
chriseth
01e0a12c3b
Fix handling of scopes in Yul Interpreter.
2019-09-02 10:41:26 +02:00
chriseth
e86b5cf14e
Replace byte(A, X) by zero if A >= 32
2019-08-29 15:35:34 +02:00
Leonardo Alt
214e5c6369
[SMTChecker] Fix index access type type error
2019-08-27 16:39:19 +02:00
Mathias Baumann
24716404f8
Parse override keyword
2019-08-26 17:34:21 +02:00
Alex Beregszaszi
5749a5d7c9
Introduce istanbul and berlin versions
2019-08-26 13:15:01 +01:00
Bhargava Shastry
922790730c
Do not create duplicate case statements
2019-08-26 12:44:06 +02:00
Bhargava Shastry
86c981d9fa
proto fuzzer: Use a yul optimizer dictionary
2019-08-26 12:44:06 +02:00
Erik K
d47863ef35
Merge pull request #7300 from ethereum/fix-docCheck
...
Fix deprecated option style for docCheck
2019-08-26 12:23:03 +02:00
Mathias L. Baumann
e1bb4b9f81
Merge pull request #7280 from ethereum/isoltest-empty-revert
...
[isoltest] Support empty revert message
2019-08-26 11:45:36 +02:00
Mathias Baumann
7f6bb543a9
Fix deprecated option style for docCheck
...
solhint was updated and now warns about deprecated option values
2019-08-26 11:23:29 +02:00
Erik Kundt
755dae5d66
[isoltest] Supports empty revert message.
2019-08-26 11:06:30 +02:00
Mathias L. Baumann
502bf01be2
Merge pull request #7278 from ethereum/develop
...
Merge develop into develop_060
2019-08-26 10:26:48 +02:00
Leonardo Alt
c27235b2f5
[SMTChecker] Adapt division test for Z3 only
2019-08-23 17:33:29 +02:00
Mathias Baumann
0e3ff25b4e
Make sure json output array order is consistent
...
The source of the "contractDependencies" value was an std::map, thus
order was more or less random.
2019-08-19 17:42:03 +02:00
Daniel Kirchner
4354ef2ef4
Add update suggestion.
2019-08-19 14:58:05 +02:00
Daniel Kirchner
20b23e124b
Add test case.
2019-08-19 14:56:04 +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
Daniel Kirchner
aa2167b208
Extract some import tests.
2019-08-19 14:45:26 +02:00
Daniel Kirchner
6ed219ebe8
Support multiple sources for syntax tests.
2019-08-19 14:45:26 +02:00
Daniel Kirchner
4a65c5ebaa
Compile succeeding syntax tests.
2019-08-16 17:14:49 +02:00
chriseth
3c4f558242
Tests
2019-08-15 16:30:05 +02:00
Leonardo Alt
1a70a46f9b
[CHC] Add function blocks and check asserts
2019-08-15 12:25:15 +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
chriseth
7d30fbdef0
Extract side effects into their own struct.
2019-08-14 15:06:10 +02:00
chriseth
e396dc7246
Properly set storage and memory after erasing potentially destroyed keys
2019-08-13 18:43:15 +02:00
Mathias Baumann
30373d5719
Test scripts: Make build dir a variable
2019-08-13 12:44:29 +02:00
chriseth
c82e46842a
Merge pull request #7226 from ethereum/release
...
Merge release back into develop.
2019-08-13 10:50:59 +02:00
chriseth
4596a761c4
Remove version in errors for release build.
2019-08-12 17:23:56 +02:00
Mathias Baumann
ccfcee5b80
YulInterpreter: Fix wrong context passed to called function
2019-08-12 17:12:53 +02:00
Leonardo
ffe906129f
Merge pull request #7210 from ethereum/smt_fix_type_mismatch
...
[SMTChecker] Support StringLiteral type
2019-08-12 14:32:43 +02:00
Leonardo Alt
955b97097c
[SMTChecker] Relax expectations for complex nonlinear tests
2019-08-11 22:20:31 +02:00
Leonardo Alt
360f868836
[SMTChecker] Fix literal string type mismatch
2019-08-10 21:51:46 +02:00
Leonardo Alt
4214cd1354
[SMTChecker] Fix ICE when reporting cex concerning state vars from different source files
2019-08-10 20:56:52 +02:00
Leonardo Alt
7b22496b1f
[SMTChecker] Fix ICE when inlining functions that use state vars and are in a different source
2019-08-09 17:50:52 +02:00
Daniel Kirchner
77729023a8
Enable asan workaround in optimizer test for gcc as well.
2019-08-09 16:11:54 +02:00
Bhargava Shastry
a20dc624d4
Selectively disable time sensitive check in the constant_optimization_early_exit unit test for address sanitizer builds.
2019-08-08 17:35:46 +02:00
chriseth
1258aabee7
Better error message if loading fails.
2019-08-08 17:35:46 +02:00
chriseth
f3f3cac864
Fix for ossfuzz.
2019-08-08 17:35:46 +02:00
chriseth
c4638cc5cb
Remove mention of IPC.
2019-08-08 17:35:46 +02:00
chriseth
ac43c3bd18
Construct VM with path.
2019-08-08 17:35:46 +02:00
chriseth
09eeb1a6b9
Discover path.
2019-08-08 17:35:46 +02:00
chriseth
f692cec11d
Provide path to libevmone.
2019-08-08 17:35:46 +02:00
chriseth
13e2a6fe52
Removing obsolete but timing-sensitive test.
2019-08-08 17:35:46 +02:00
chriseth
22e9155ba4
Precompiles.
2019-08-08 17:35:46 +02:00
chriseth
b7d17c578d
Count gas for transaction and code deposit.
2019-08-08 17:35:46 +02:00
chriseth
3dec3af638
Use evmone for testing.
2019-08-08 17:35:44 +02:00
chriseth
7401fbabd9
Add evmc.
2019-08-08 17:34:51 +02:00
chriseth
9955c51769
Merge pull request #7077 from ethereum/sol-yul-delete-fixed-storage
...
[Sol->Yul] Implement delete for fixed-sized storage arrays
2019-08-08 16:47:16 +02:00
mingchuan
15631a7fbe
Split calldataEncodedSize into calldataEncodedSize, calldataEncodedTailSize and calldataHeadSize and fix all usages.
2019-08-08 15:52:21 +02:00
Mathias Baumann
e072885031
[Sol->Yul] Implement delete for fixed-sized storage arrays
2019-08-07 18:28:52 +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
6166dc8e8f
Merge pull request #6856 from rocky/recoveringParser1-ast
...
Produce AST even when there are parser errors
2019-08-07 15:56:45 +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
rocky
7fd7cc1e76
Produce AST even when there are parser errors
2019-08-07 15:25:53 +02:00
Erik Kundt
fe15db6537
[isoltest] Fixes exception handling while parsing literals.
2019-08-07 12:22:52 +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
Daniel Kirchner
4182033264
Merge pull request #7179 from ethereum/fix-gcc-9-errors
...
Fix gcc9 errors
2019-08-06 13:23:04 +02:00
Mathias Baumann
e4ad0e8e6d
Fix gcc9 errors
2019-08-06 12:12:09 +02:00
Bhargava Shastry
efa2648771
Merge pull request #7177 from ethereum/abiv2-test-decoding-of-invalid-encode
...
Test low level calls with correct and incorrect encodings
2019-08-06 12:06:13 +02:00
Leonardo
cd563e526a
Merge pull request #7122 from sifmelcara/expression-inliner-avoid-dup-expr
...
[Yul] ExpressionInliner: avoid duplicating expressions
2019-08-06 11:08:38 +02:00
Bhargava Shastry
2f815c5c35
While compiling abiv2 proto generated solidity test program, silently ignore stack too deep errors (exception), throw exception otherwise.
2019-08-06 11:06:09 +02:00
Bhargava Shastry
bf16f2f75e
Test low level calls with correct and incorrect encodings
2019-08-06 09:43:55 +02:00
chriseth
24074d8bac
Merge pull request #7172 from ethereum/smt_fix_return_tuple
...
[SMTChecker] CHC create function returned expressions
2019-08-05 16:48:13 +02:00
chriseth
42290f912b
Merge pull request #7052 from ethereum/isoltest-update-improvements
...
[isoltest] Update improvements (support for missing types)
2019-08-05 16:45:06 +02:00
chriseth
6fe2657b19
Merge pull request #6416 from ethereum/docs-style-checker
...
[DOCS] Docs examples style checker
2019-08-05 16:18:57 +02:00
Erik Kundt
f914415fb2
[isoltest] Updates type retrieval from ABI and its formatting.
2019-08-05 16:15:07 +02:00
Erik Kundt
38285b33d7
[isoltest] Prints bytes result if expectations mismatch.
2019-08-05 15:11:43 +02:00
Erik Kundt
07051f41d2
[isoltest] Reworks (default) ABI Type construction.
2019-08-05 15:00:04 +02:00
Erik Kundt
d9b98bf7af
[isoltest] Cleans up BytesUtils.
2019-08-05 15:00:04 +02:00
Erik Kundt
a7a8ba73f9
[isoltest] Moves error types to dedicated file.
2019-08-05 15:00:04 +02:00
Chris Chinchilla
85ec44826a
Add style checker
...
Rename files
Changes from review
Update test/docsCodeStyle.sh
Co-Authored-By: chriseth <chris@ethereum.org>
Update test/docsCodeStyle.sh
Co-Authored-By: chriseth <chris@ethereum.org>
Remove extraneous brackets
2019-08-05 13:00:30 +02:00
Leonardo Alt
369f8cd97f
[SMTChecker] CHC create function return variables
2019-08-05 12:36:51 +02:00
Leonardo
11632966c9
Merge pull request #7171 from ethereum/smt_fix_compound_bitwise
...
[SMTChecker] Fix ICE compound bitwise op inside branch
2019-08-05 12:15:01 +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
mingchuan
46387eaea2
[Yul] ExpressionInliner: avoid duplicating high cost expressions
2019-08-05 11:48:32 +02:00
Christian Parpart
235638b3fc
Implements constructor code for state variables.
2019-08-05 11:23:01 +02:00
Leonardo Alt
d5fb8cf58a
[SMTChecker] Fix ICE compound bitwise op inside branch
2019-08-02 20:02:39 +02:00
Leonardo Alt
7b5863e583
Do not erase knowledge about storage pointers when another pointer is assigned
2019-08-02 13:09:06 +02:00
Bhargava Shastry
e018d62a67
Dynamically sized array dimensions can be zero sized
2019-08-01 16:33:57 +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
chriseth
742b4271fd
Merge pull request #7159 from ethereum/always_demand_tests
...
Make sure a semantic test file always contains function calls
2019-08-01 15:12:13 +02:00
chriseth
2a25d7461f
Merge pull request #7123 from rocky/tolerate-pragma-mismatch
...
A pragma version mismatch is not fatal if ...
2019-08-01 14:48:24 +02:00
chriseth
6730a59f74
Merge pull request #7157 from ethereum/fix-7155
...
FunctionType: Return correct stacksize for transfer/send
2019-08-01 14:40:35 +02:00
Mathias Baumann
c920b50ebe
Make sure a semantic test file always contains function calls
...
Because if not, the code isn't even compiled.
2019-08-01 14:02:33 +02:00
Mathias Baumann
e887c06f6b
FunctionType: Return correct stacksize for transfer/send
2019-08-01 13:56:09 +02:00
Leonardo Alt
44d7c6976a
Erase pointer knowledge properly inside loops
2019-07-30 12:47:50 +02:00
Leonardo
00accd9daa
Merge pull request #7141 from ethereum/smt_fix_json
...
[SMTChecker] Reset SSA index to 0 instead of increasing in context reset
2019-07-29 10:20:06 +02:00
Leonardo Alt
847f574e22
[SMTChecker] Fix ICE when inlining function with tuple expression
2019-07-26 16:29:29 +02:00
Leonardo Alt
6bcbeb1d23
[SMTChecker] Reset SSA index to 0 instead of increasing in context reset
2019-07-25 14:16:34 +02:00
Christian Parpart
b6446aa615
Extracting more end-to-end tests.
2019-07-22 16:31:46 +02:00
Erik Kundt
41fb6f4ff8
isoltest: Removes additional whitespaces from output.
2019-07-22 13:43:20 +02:00
Erik Kundt
8c51a089d7
isoltest: Makes ->
declaration optional.
2019-07-22 13:25:11 +02:00
Christian Parpart
58d8243921
isoltest: Fixes parsing and printing strings with *basic* escape sequences in it.
...
We explicitly did not implement a fully conformant ANSI escape sequence
parser but only what is needed for now.
2019-07-22 11:32:17 +02:00
Leonardo
508cf66da2
Merge pull request #7062 from ethereum/smt_chc_checker
...
[SMTChecker] Add skeleton for CHC
2019-07-19 15:41:43 +02:00
Leonardo Alt
03cc124f32
Add CHC skeleton
2019-07-19 11:52:05 +02:00
chriseth
8ba00cd7dd
Merge pull request #7126 from ethereum/addComprMSizeTest
...
Add another test related to stack compressor and msize.
2019-07-18 20:12:11 +02:00
chriseth
a30be56c27
Additional type info for ABI.
2019-07-18 16:54:11 +02:00
chriseth
0c0b5a09cd
Add another test related to stack compressor and msize.
2019-07-18 16:40:46 +02:00
rocky
f9b631f410
A pragma version mismatch is not fatal if ...
...
error recovery is desired.
Fixes #7085
2019-07-17 19:01:01 -04:00
chriseth
15cba9163e
Merge pull request #7106 from ethereum/fixMSizeOpt
...
Do not overwrite allowMSizeOptimization
2019-07-17 18:17:40 +02:00
Bhargava Shastry
90d421352a
Add bool type and array of bool and dynamic byte types
2019-07-17 14:24:43 +02:00
Bhargava Shastry
00bca77cca
Updated evmc to version tracked by evmone v0.1.0
2019-07-17 14:24:27 +02:00
Christian Parpart
810a0de1aa
Add evmc and host interface implementation. Modify fuzzer harness to make use of evmc host/vm.
2019-07-17 10:55:33 +02:00
chriseth
4fa7800458
Merge pull request #7109 from ethereum/ossfuzz-ci-update
...
Update fuzzing deps in docker image and ossfuzz CMakeLists.txt
2019-07-17 10:51:28 +02:00
chriseth
35ca6ef5ed
Merge pull request #7079 from ethereum/moreWorkOnEWasmExternals
...
Add eWasm externals.
2019-07-16 14:51:43 +02:00
chriseth
a0a0a34a21
Do not overwrite allowMSizeOptimization
2019-07-16 10:13:18 +02:00
chriseth
147f736f10
Merge pull request #7092 from ethereum/isoltest-parser-linenumbers
...
[isoltest] Add source location to parser errors
2019-07-16 10:09:15 +02:00
Bhargava Shastry
5aa571e56f
Update fuzzing deps in docker image and ossfuzz CMakeLists.txt
2019-07-16 09:10:02 +02:00
Erik Kundt
2a1473fd30
Adds line numbers to parser errors in isoltest.
2019-07-15 14:16:07 +02:00
Erik Kundt
e269a0ff70
Adds constructor calls with ether value to isoltest.
2019-07-13 12:42:25 +02:00
chriseth
6c31a5f3dd
Improve formatting.
2019-07-11 17:37:23 +02:00
chriseth
e3433aa4eb
Add eWasm externals.
2019-07-11 17:37:23 +02:00
chriseth
869d69d293
Supply full object to stack compressor and Optimizer Suite.
2019-07-10 18:49:42 +02:00
chriseth
2a5280faa0
Check availability of data objects already in analysis phase.
2019-07-10 18:49:42 +02:00
chriseth
f3bdc79187
Merge pull request #7075 from ethereum/sol-yul-getter
...
[Sol->Yul] Implement keccak & getter functions
2019-07-10 14:11:27 +02:00
Mathias Baumann
d264e3e0ba
[Sol->Yul] Implement getter functions
2019-07-10 13:42:39 +02:00
Mathias Baumann
37f04976a2
[Sol->Yul] Implement keccak256
2019-07-09 18:25:07 +02:00
Bhargava Shastry
3b33ff1454
Adjust call to suffixedVariableNameList post refactoring in ABIv2 proto fuzzer and slim down dependencies.
2019-07-09 18:18:40 +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
chriseth
859dbaa2a3
Merge pull request #7053 from djudjuu/moveSuffixHelper
...
move SuffixHelper to StringUtils
2019-07-09 14:32:05 +02:00
djudjuu
cafa01cbf6
moved SuffixHelper to StringUtils
2019-07-09 13:50:07 +02:00
chriseth
479b843067
Merge pull request #7048 from ethereum/soltest-refactoring
...
[isoltest] Types and formatting refactoring
2019-07-09 12:50:15 +02:00
chriseth
45cedc09fe
Merge pull request #6880 from ethereum/abiv2proto
...
Abiv2proto
2019-07-09 12:20:34 +02:00
chriseth
8d006d2017
Merge pull request #7068 from ethereum/asmConstNoValue
...
Cope with constants without value in inline assembly.
2019-07-09 12:13:56 +02:00
chriseth
9cb9021c36
Cope with constants without value in inline assembly.
2019-07-09 11:12:13 +02:00
Bhargava Shastry
5bc1a68b40
ABIv2 proto fuzzer implementation for a limited set of value and non-value types (arrays included).
2019-07-09 10:50:43 +02:00
chriseth
04bad01ab1
Merge pull request #7063 from ethereum/EndToEndTest-extractions-2
...
Extracting more end-to-end tests.
2019-07-08 16:15:22 +02:00
Christian Parpart
a9a56bc6dd
Extracting more end-to-end tests.
2019-07-08 16:04:52 +02:00
chriseth
2700cb0b43
Fix commandline tests.
2019-07-08 14:28:54 +02:00
chriseth
25928767b7
Merge pull request #7058 from ethereum/smt_reset_context
...
[SMTChecker] Clear encoding context before engine starts
2019-07-08 12:36:50 +02:00
chriseth
bd5d11d82d
Merge pull request #7056 from ethereum/yul-reindenter-with-SP
...
yul::reindent() to reindent with spaces instead of tabs (width: 4)
2019-07-08 12:36:26 +02:00
chriseth
7267873a96
Merge pull request #7038 from ethereum/addSecondaryLocationToStandardIO
...
Provide secondary source location for error messages in standard json.
2019-07-08 12:00:09 +02:00
Leonardo Alt
be663680d4
[SMTChecker] Clear encoding context before engine starts
2019-07-08 11:56:04 +02:00
Christian Parpart
7ba9537ae1
yul::reindent() to reindent with spaces instead of tabs (width: 4)
2019-07-08 11:43:11 +02:00
Erik Kundt
d06be2c53f
Restructures alignment and bytes utils in isoltest.
2019-07-04 19:15:43 +02:00
chriseth
019ec63f63
Merge pull request #7036 from ethereum/unescapeNewlines
...
Unescape newlines in json test expectations.
2019-07-04 18:15:51 +02:00
Erik Kundt
de34f7712d
Separates types and conversion functions in soltest.
2019-07-04 14:11:07 +02:00
chriseth
d3e542d32c
Provide secondary source location for error messages in standard json.
2019-07-04 10:54:01 +02:00
chriseth
7e329769a0
Unescape newlines for test expectations.
2019-07-04 08:44:35 +02:00
Leonardo Alt
934e00d235
[SMTChecker] SymbolicVariables use EncodingContext to declare SMT vars
2019-07-03 16:05:56 +02:00
chriseth
b837705259
Merge pull request #7018 from ethereum/compile_only_requested
...
Compile only requested sources and contracts
2019-07-03 14:11:42 +02:00
Leonardo Alt
b8d4400588
Make it work on Mac OS
2019-07-03 11:26:28 +02:00
chriseth
2b91022b25
Fix view/pure checker for access to base.
2019-07-03 11:19:57 +02:00
Leonardo Alt
358368cd0c
Tests for output selection
2019-07-03 09:58:55 +02:00
chriseth
a4ef435c07
Automated ABI Json tests.
2019-07-02 18:11:49 +02:00
chriseth
776fec1913
Make json output a bit prettier.
2019-07-02 18:07:05 +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
e542e46163
Merge pull request #7022 from ethereum/smt_create_expr
...
[SMTChecker] Always create symbolic expression
2019-07-02 14:07:24 +02:00
chriseth
cdd137e3d1
Support constant numbers in inline assembly.
2019-07-02 14:01:05 +02:00
chriseth
ca10b59b25
Merge pull request #7020 from ethereum/smt_fix_callstack_message
...
[SMTChecker] Fix wrong assertion in callstack message
2019-07-02 13:47:49 +02:00
Leonardo Alt
fb3c85633b
Always create symbolic expression
2019-07-01 16:25:33 +02:00
Leonardo Alt
75663dc91e
[SMTChecker] Fix require with message
2019-07-01 16:17:06 +02:00
Leonardo Alt
6606a13ed2
[SMTChecker] Remove unsound assertion (too strong)
2019-07-01 16:16:39 +02:00
chriseth
22776cddcd
Merge pull request #7025 from ethereum/EndToEndTest-extractions-1
...
Extracting some Solidity end-to-end tests.
2019-07-01 15:54:09 +02:00
Christian Parpart
62f6e4bad3
Extracting some Solidity end-to-end tests.
2019-07-01 15:37:46 +02:00
Leonardo Alt
3cb4ed83c1
[SMTChecker] Split SMTChecker into SMTEncoder and BMC
2019-07-01 15:05:03 +02:00
chriseth
4976b3ec67
More work on eWasm polyfill.
2019-07-01 13:05:20 +02:00
chriseth
2ee272acf3
Merge pull request #7002 from ethereum/wasmSwitch
...
Wasm switch
2019-06-27 20:51:39 +02:00
chriseth
8c65a2383f
Merge pull request #7014 from ethereum/constantOptDirtyScratch
...
Add test for constant optimization with dirty scratch space.
2019-06-27 16:17:31 +02:00
chriseth
3be21800ac
Merge pull request #6683 from ethereum/updateSwarm
...
Update swarm hash.
2019-06-27 13:18:29 +02:00
chriseth
e2bfb1a663
Translation of switch statement for wasm backend.
2019-06-27 13:02:35 +02:00
chriseth
53f37f487f
Merge pull request #6994 from ethereum/smt_refactor_targets
...
[SMTChecker] Delay all checks
2019-06-27 12:56:34 +02:00
chriseth
89f0e1e6da
Use updated swarm hash.
2019-06-27 12:49:06 +02:00
chriseth
aa11ad7d0a
Update swarm hash.
2019-06-27 12:48:51 +02:00
chriseth
8d18003808
Merge pull request #6716 from ethereum/wasmTranslation
...
[Yul] EVM to Wasm translation
2019-06-27 12:31:35 +02:00
chriseth
55bf1b547e
Add test for constant optimization with dirty scratch space.
2019-06-27 12:15:49 +02:00
Leonardo Alt
a28b84fdc3
[SMTChecker] Add a more general VerificationTarget
2019-06-27 10:31:50 +02:00
chriseth
f05805c955
Merge pull request #7003 from ethereum/missingTestKnowledge
...
Adding forgotten test for load resolver.
2019-06-26 13:08:55 +02:00
chriseth
b4a0a79398
Merge pull request #6993 from ethereum/smt_false_positives
...
[SMTChecker] Remove overflow check for assignments
2019-06-26 13:06:31 +02:00
chriseth
c6f7f5b2b0
Enable EWasm output.
2019-06-25 19:07:38 +02:00
chriseth
f5f1b2649c
Adding forgotten test for load resolver.
2019-06-25 17:25:53 +02:00
chriseth
f58bd5551e
Test for sign bit chopping.
2019-06-25 13:00:02 +02:00
Leonardo Alt
48d6729164
[SMTChecker] Remove overflow check for assignments
2019-06-24 17:58:56 +02:00
Mathias Baumann
5f072d30df
Enable yul for more end to end tests
2019-06-24 16:06:22 +02:00
chriseth
a3e816e198
Merge pull request #6807 from ethereum/storageKnowledge
...
Knowledge about storage and memory.
2019-06-24 14:09:21 +02:00
chriseth
9c129a4087
Merge pull request #6984 from ethereum/yul-reindent
...
yul: adds reindent() function to reindent yul source code and makes us of it in IRGenerator
2019-06-24 12:54:40 +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
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
chriseth
5329a84912
Merge pull request #6982 from rocky/error-recovery-spacing-typo
...
Add missing space in error recovery message.
2019-06-24 12:32:32 +02:00
rocky
8b461be2b0
Add missing space in error recovery message.
...
Also add a space in the Test Title
2019-06-24 06:28:18 -04:00
Christian Parpart
b58170f890
Refactor & Speedups on CircleCI; split out out codecov into dedicated tests.
2019-06-21 20:26:10 +02:00
chriseth
2b979cba38
Also optimize memory.
2019-06-20 18:43:37 +02:00
chriseth
8572600401
Implement knowledge base.
2019-06-20 18:43:37 +02:00
chriseth
1f9d11c644
Knowledge about storage.
2019-06-20 18:43:37 +02:00
Mathias Baumann
1dd63f416e
[Sol->Yul] Implement index access for storage arrays
2019-06-20 16:14:51 +02:00
Daniel Kirchner
c71fb76bb2
Proofs for the overflow and underflow conditions in checked arithmetic for Sol->Yul code generation.
2019-06-20 15:58:10 +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
chriseth
848959fff0
Merge pull request #6929 from ethereum/solYulBinaryOps
...
[Sol -> Yul] Checked signed arithmetic and modulo.
2019-06-20 13:02:30 +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
chriseth
dcb430c09f
Merge pull request #6968 from ethereum/completeWordSizeTransform
...
[Yul] More work on word size transform
2019-06-20 11:38:57 +02:00
chriseth
5b92640ab5
Merge pull request #6972 from ethereum/restrictWhiskersTemplateParams
...
Restrict whiskers parameters to regular characters.
2019-06-20 11:23:02 +02:00
chriseth
ecab46c707
Finish word size transform.
2019-06-20 10:42:56 +02:00
Leonardo Alt
51ba7f5f17
Add CI job for optimization proofs
2019-06-19 22:29:23 +02:00
chriseth
fc64de6d90
Merge pull request #6923 from ethereum/sol-yul-storage-array
...
[Sol->Yul] Implement .length for storage arrays
2019-06-19 19:13:06 +02:00
chriseth
d9d1c4a312
Merge pull request #6967 from ethereum/nameDisplacer
...
[Yul] Name displacer.
2019-06-19 18:56:54 +02:00
chriseth
fc6f47e453
Restrict whiskers parameters to regular characters.
2019-06-19 18:46:16 +02:00
Mathias Baumann
910cb8d329
[Sol->Yul] Implement .length for storage arrays
2019-06-19 18:09:23 +02:00
chriseth
8edf9e4baf
Merge pull request #6666 from vedant1811/issue-5405
...
Group function definitions
2019-06-19 18:03:40 +02:00
chriseth
d7b366ff46
Name displacer.
2019-06-19 14:55:38 +02:00
chriseth
53f26d9719
Merge pull request #6963 from ethereum/runOptimizerOnAllDialects
...
[Yul] Run optimizer on all dialects.
2019-06-19 10:51:24 +02:00
chriseth
cc5045a56e
[Yul] Run optimizer on all dialects.
2019-06-19 10:01:16 +02:00
Vedant Agarwala
5d6cbd97df
[Yul] Directly jump over a series of function definitions
...
Implement a AbstractAssembly::setStackHeight function
Update the tests
Update Changelog
2019-06-19 12:40:11 +08:00
mingchuan
13c1409669
Add test case that abi.encode nested storage arrays
2019-06-19 10:46:47 +08:00
chriseth
56db792ad9
Merge pull request #6876 from rocky/recoveringParser1-StandardCompiler
...
Add parser errorRecovery (including StandardCompiler)
2019-06-18 22:40:35 +02:00
rocky
1a7e09ab7a
Add errorRecovery boolean to StandardCompiler
2019-06-18 15:54:05 -04:00
chriseth
05a67c486e
Use "what" in exception reports.
2019-06-18 17:34:10 +02:00
chriseth
6cb6fe35ef
Make Yul optimizer not fail for wasm.
2019-06-17 18:42:47 +02:00
rocky
ca3afea1d7
Add Steve Johnson-style parser recovery rules:
...
SourceUnit = Error $
Block = '{' Error '}'
ContractDefinition = '{' Error '}'
Statement = Error ';'
Co-Authored-By: chriseth <chris@ethereum.org>
2019-06-17 14:47:07 +02:00
chriseth
633510eb04
Merge pull request #6935 from ethereum/subMaxValueXNotXRule
...
Add optimization rule SUB(~0, X) -> NOT(X).
2019-06-17 14:42:49 +02:00
chriseth
452a1d6aff
Merge pull request #6730 from ethereum/generic-for-loop
...
For loop with generalized init-cond-post
2019-06-17 10:50:50 +02:00
Daniel Kirchner
5718072e10
Fix comparison opcodes and minor errors in proof scripts.
2019-06-14 17:04:50 +02:00
Daniel Kirchner
d3293cf0d0
Correctness proof for SUB(NOT(0),X)->NOT(X).
2019-06-14 14:08:21 +02:00
Daniel Kirchner
4aa0c9e079
Merge pull request #6939 from ethereum/opt_proofs
...
Move optimization proofs repo to Solidity repo
2019-06-14 14:06:59 +02:00
Bhargava Shastry
b5cbb1a3e9
For loop with custom init and post blocks and potentially unbounded conditional expression
2019-06-14 08:46:28 +02:00
Daniel Kirchner
4d38df6920
Set state mutability of function type members `gas
and
value
` to pure.
2019-06-13 18:27:53 +02:00
Leonardo Alt
5089d4ac28
Move optimization proofs repo to Solidity repo
2019-06-13 17:11:48 +02:00
Alex Beregszaszi
668972bb4e
Merge pull request #6930 from ethereum/msvc-SolidityEnd2EndTest-BigObj
...
Fixes compilation on Visual Studio 2019
2019-06-13 01:17:15 +02:00
Christian Parpart
98d852c832
Fixes compilation on Visual Studio 2019 (SolidityEndToEndTest.cpp's object file is too large, so we need a special flag to get it still compiling)
2019-06-12 23:46:32 +02:00
Leonardo
d2019f49ea
Merge pull request #6906 from ethereum/delegatecall_value_msg
...
Improve error message for delegatecall.value
2019-06-12 21:14:54 +02:00
Daniel Kirchner
dfbdb6c007
Fix failing command line tests.
2019-06-12 19:04:02 +02:00
Daniel Kirchner
2dc405e948
Fix command line tests script to properly report errors.
2019-06-12 19:03:45 +02: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
Daniel Kirchner
502d22a26e
Merge pull request #6914 from ethereum/boost170
...
Use imported targets for boost and update emscripten boost to 1.70.
2019-06-12 15:26:24 +02:00
Mathias Baumann
9e23d6d05e
[Sol->Yul] Compile some tests with yul
2019-06-11 17:44:36 +02:00
Daniel Kirchner
91200fdd2e
Merge pull request #6925 from ethereum/keccakTests
...
Some keccak tests.
2019-06-11 15:55:09 +02:00
Daniel Kirchner
073777e836
Some keccak tests.
2019-06-11 15:09:52 +02:00
Daniel Kirchner
ba8ad1a1d9
Use the TestCase settings mechanism for object compiler tests.
2019-06-11 14:11:27 +02:00
Daniel Kirchner
547173533c
Unify parsing of simple test expectations and require lines to start with `//
`.
2019-06-11 14:05:45 +02:00
Daniel Kirchner
bd1f65d609
Merge pull request #6888 from anurag-git/anurag_semantic_test_update
...
New semantic tests extracted
2019-06-11 10:50:10 +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
Daniel Kirchner
8e20a5e59a
Allow extracted semantics tests to run both with and without Yul.
2019-06-06 20:19:16 +02:00
Daniel Kirchner
226f8bb64d
Use imported cmake targets for boost.
2019-06-06 18:49:34 +02:00
Daniel Kirchner
6368cd4c82
AsmParser: disallow trailing commas in function call arguments.
2019-06-06 13:16:27 +02:00
Leonardo Alt
b7634faa3d
Improve error message for delegatecall.value
2019-06-06 12:55:12 +02:00
Leonardo Alt
d9ce9cab99
[SMTChecker] Use smtlib's implies instead of \!a or b
2019-06-04 14:23:44 +02:00
Bhargava Shastry
f57439035a
Do not enclose string literal within double quotes before conversion to u256
2019-05-29 15:52:31 +02:00
chriseth
c9e2d388b5
Merge pull request #6848 from ethereum/invertibleRelation
...
Implement references using InvertibleRelation as data structure.
2019-05-29 13:34:10 +02:00
chriseth
4ee703e6e5
Revert "Add Steve Johnson-style parser recovery rules:"
...
This reverts commit 97f8ee0d1b
.
2019-05-28 18:09:24 +02:00
chriseth
f9dca1f282
Merge pull request #6681 from rocky/recoveringParser1
...
Add Steve Johnson-style parser recovery rules:
2019-05-28 15:36:45 +02:00
rocky
97f8ee0d1b
Add Steve Johnson-style parser recovery rules:
...
SourceUnit = Error $
Block = '{' Error '}'
ContractDefinition = '{' Error '}'
Statement = Error ';'
Co-Authored-By: chriseth <chris@ethereum.org>
2019-05-28 15:06:34 +02:00
chriseth
a3f721bbcc
Merge pull request #6583 from ethereum/reset_yulstringrepo
...
Reset YulStringRepository regularly
2019-05-28 14:20:53 +02:00
chriseth
2276b567b1
Merge pull request #6840 from ethereum/discoverMSize
...
Only remove msize-modifying instructions if msize is not used.
2019-05-28 13:16:55 +02:00
Bhargava Shastry
dbae0fa939
Reset Yul string repository before each compilation.
2019-05-28 13:12:39 +02:00
chriseth
df96648b1c
Do not allow msize in inline assembly if the Yul optimizer is active.
2019-05-28 12:54:33 +02:00
chriseth
d7b5ea6761
Allow msize optimization only if it is not present.
2019-05-28 12:54:32 +02:00
chriseth
c3cdae908d
Merge pull request #6767 from ethereum/constantOptimiserForYul
...
[Yul] Constant optimiser
2019-05-28 11:53:04 +02:00
chriseth
b95eebee1c
Merge pull request #6822 from ethereum/uninitializedLoadFromStorage
...
Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage.
2019-05-28 11:48:56 +02:00
chriseth
01b6b680f1
Merge pull request #6829 from ethereum/solYulDivision
...
[SolYul] Division.
2019-05-28 11:48:20 +02:00
chriseth
cee1340113
Add mini-interpreter to check representation.
2019-05-28 11:35:07 +02:00
chriseth
1c16124a09
Constant optimiser for Yul.
2019-05-28 11:35:07 +02:00
chriseth
4061ad0a7b
Implement references using InvertibleRelation as data structure.
2019-05-27 22:55:59 +02:00
chriseth
7183940e24
Merge pull request #6770 from ethereum/isoltest-parser-fix
...
[isoltest] TestFileParser: Fixes access of iterator at and beyond iterator ends
2019-05-27 19:14:35 +02:00
chriseth
fbf189151d
[SolYul] Division.
2019-05-27 17:53:46 +02:00
chriseth
5b1a984882
Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage.
2019-05-27 17:26:37 +02:00
chriseth
a600126703
Merge pull request #6833 from sifmelcara/fix-struct-array-mapping
...
Fix assignment of struct containing array of mappings
2019-05-27 11:14:28 +02:00
mingchuan
bf8af89bba
Fix assignment of struct containing array of mappings
2019-05-25 01:33:49 +08:00
chriseth
73d0eb6b7a
Modify test to prevent underflow.
2019-05-23 21:32:30 +02:00
chriseth
ee7548a339
Activate some tests.
2019-05-23 21:32:30 +02:00
chriseth
195a7ff61a
Merge pull request #6814 from ethereum/yul-delete-operation
...
[Sol -> Yul] Implement delete for function pointers
2019-05-23 16:27:14 +02:00
Mathias Baumann
981983089c
[Sol -> Yul] Implement delete for function pointers
2019-05-23 15:51:59 +02:00
chriseth
6132f0aea9
Merge pull request #6800 from ethereum/skipEmptyDump
...
Skip empty entries in memory and storage dump.
2019-05-23 14:27:44 +02:00
chriseth
3c548a1d76
Update tests.
2019-05-23 13:17:27 +02:00
Mathias Baumann
81702717b0
[Sol -> Yul] Enable function pointer comparison
2019-05-23 12:52:50 +02:00
chriseth
e5902c58a4
Merge pull request #6777 from sifmelcara/loop-cond-rewriter
...
[YulOpt] Implement ForLoopConditionIntoBody
2019-05-23 12:51:51 +02:00
chriseth
14545852d1
Make YulInterpreterTest EVM version aware.
2019-05-23 12:42:11 +02:00
chriseth
1ca3edf6a1
Remove side-effect-free instructions from the trace.
2019-05-23 12:42:11 +02:00
chriseth
3ef03258ec
Remove memory logging.
2019-05-23 12:42:11 +02:00
chriseth
0291abf10f
Merge pull request #6818 from ethereum/alwaysUseBuiltins
...
Provide builtin functions even in loose assembly mode.
2019-05-23 12:29:12 +02:00
chriseth
91312e657b
Skip empty entries in memory and storage dump.
2019-05-23 12:27:56 +02:00
chriseth
d707a26a90
Merge pull request #6809 from ethereum/refactor-ossfuzz-build
...
[ossfuzz] Refactor build system so that ossfuzz harnesses can be built locally
2019-05-23 12:26:44 +02:00
chriseth
7cf51876e2
Merge pull request #6812 from ethereum/asmCallvalue
...
Do not require payable for callvalue instruction.
2019-05-23 12:07:06 +02:00
chriseth
90e8594858
Update tests.
2019-05-23 11:30:12 +02:00
chriseth
9a00729ce7
Provide dialect to Parser and InlineAssembly AST nodes.
2019-05-23 00:24:58 +02:00
chriseth
1e3878121a
Do not inline recursive functions.
2019-05-22 18:15:21 +02:00
mingchuan
4ab377eb00
Add tests for ForLoopConditionIntoBody
2019-05-22 21:51:03 +08:00
chriseth
7506b5752a
Do not require payable for callvalue instruction.
2019-05-22 11:30:29 +02:00
Bhargava Shastry
804368bb51
First commit
2019-05-22 10:15:28 +02:00
Mathias Baumann
cbf81b123a
Fix new found spelling mistakes and add exceptions
2019-05-21 10:59:34 +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
chriseth
af2bdfd2fa
Merge pull request #6793 from ethereum/irCheckedMul
...
[Sol - Yul] Implement checked multiplication.
2019-05-20 17:54:57 +02:00
Daniel Kirchner
b6f4d4e9bc
[Sol - Yul] Implement checked multiplication.
2019-05-20 17:36:53 +02:00
chriseth
1dc15d5864
Modify parser and optimizer.
2019-05-20 17:32:56 +02:00
chriseth
46d9df7574
Add EVM opcodes as builtins.
2019-05-20 16:46:31 +02:00
Christian Parpart
63ae9f1415
[isoltest] TestFileParser: Fixes access of iterator at and beyond iterator ends.
2019-05-20 16:29:03 +02:00
Mathias Baumann
86000fdcce
[Sol -> Yul] Implement unary -
, +
2019-05-20 16:14:46 +02:00
chriseth
e08f521b7e
Merge pull request #6764 from ethereum/smt_fix_tuple_ice
...
[SMTChecker] Fix ICE in unsupported function calls with multi return values
2019-05-20 15:18:11 +02:00
Mathias Baumann
7dbcb80523
[Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, !
2019-05-20 11:43:12 +02:00
chriseth
4bdb981224
Make dialect const& and allocate single instances statically.
2019-05-17 12:54:24 +02:00
chriseth
570db164c9
Make Dialect const.
2019-05-16 21:51:54 +02:00
Daniel Kirchner
e20fbd388b
Merge pull request #6779 from ethereum/gasCostFix
...
Fix gas cost test.
2019-05-16 21:48:05 +02:00
chriseth
315f66fc93
Merge pull request #6771 from ethereum/fixConstructorABIV2
...
Fix handling of structs of dynamic size as constructor parameters.
2019-05-16 20:53:16 +02:00
Daniel Kirchner
95ed4daf20
Subtract bzzr0 data cost from used gas in gas cost test.
2019-05-16 20:38:25 +02:00
Leonardo Alt
60a4f03d3d
[SMTChecker] Fix ice in unsupported functions with multi return values
2019-05-16 18:23:42 +02:00
chriseth
f2ae30f620
Fix handling of structs of dynamic size as constructor parameters.
2019-05-16 17:10:54 +02:00
chriseth
54ce3df321
Merge pull request #6755 from ethereum/useShiftDirectly
...
[Optimizer] Use shift directly instead of multiplication in constant optimizer.
2019-05-16 15:49:02 +02:00
chriseth
38d92a1163
Merge pull request #6746 from ethereum/splitMovable
...
Split movable property into movable and side-effect-free
2019-05-16 13:25:15 +02:00
chriseth
5824f5d42f
Use shift directly instead of multiplication in constant optimizer.
2019-05-16 12:50:53 +02:00
chriseth
fa23601d52
Merge pull request #6766 from ethereum/isoltest-constructor-arguments
...
[soltest] Adds support for constructor arguments
2019-05-16 12:36:50 +02:00
chriseth
733677690e
Update tests.
2019-05-16 12:30:05 +02:00
chriseth
f6437a2016
Optimizer rules that combine shifts and masks.
2019-05-15 20:30:53 +02:00
chriseth
38f7cfa0c4
Merge pull request #6757 from ethereum/cmdlineMetadata
...
Fix cmdline tests that depended on metadata.
2019-05-15 14:26:46 +02:00
chriseth
ce19e2e4bc
Merge pull request #6599 from ethereum/ipfsHash
...
Add IPFS hash of source files to metadata.
2019-05-15 14:21:58 +02:00
Daniel Kirchner
e8480664d3
Move output selection wildcard tests from command line tests to StandardCompiler.cpp.
2019-05-15 13:15:59 +02:00
Erik Kundt
5d85ab49b9
Allow the constructor to revert.
2019-05-15 12:24:23 +02:00
Erik Kundt
94597ad9ae
Adds support for constructor arguments in isoltest.
2019-05-15 12:01:14 +02:00
chriseth
d753fcdb36
Tools to compute UnixFS IPFS hash.
2019-05-14 11:52:11 +02:00
chriseth
246c1c939f
Tests.
2019-05-13 18:58:55 +02:00
chriseth
2182dd35d7
Update IR expectations.
2019-05-13 17:42:25 +02:00
chriseth
2d2f4943de
Merge pull request #6732 from ethereum/splitStructuralSimplifier
...
Split structural simplifier
2019-05-13 11:41:25 +02:00
chriseth
dd4f9bf1a6
Really split structural simplifier.
2019-05-13 10:26:57 +02:00
chriseth
d9831c8b96
Split structural simplifier.
2019-05-13 10:26:57 +02:00
chriseth
37375b4271
Merge pull request #6606 from ethereum/stdin-output-wildcard
...
Fix wildcard as output selector in standard JSON
2019-05-13 10:24:13 +02:00
chriseth
8c232e8196
Merge pull request #6690 from ethereum/useConditionalWhiskers
...
Use conditional whiskers
2019-05-13 10:23:30 +02:00
chriseth
03c8e43da5
Merge pull request #6605 from ethereum/natspec-colon-fix
...
Fix Natspec parser error
2019-05-13 10:19:47 +02:00
chriseth
e5d46767f1
Merge pull request #6722 from ethereum/smt_fix_variable_usage
...
[SMTChecker] Fix VariableUsage for IndexAccess
2019-05-13 10:17:26 +02:00
chriseth
a28b6224a4
Merge pull request #6714 from ethereum/finishERC20
...
Finish ERC20
2019-05-13 10:00:38 +02:00
Erik Kundt
2b021eaa30
Allows wildcard as output selector in standard JSON.
2019-05-10 18:58:51 +02:00
chriseth
ea637f2097
Merge pull request #6424 from ethereum/external-tests-colony
...
Add external Colony Networks tests
2019-05-10 13:17:03 +02:00
Leonardo Alt
3ea5c112d3
[SMTChecker] Fix VariableUsage for IndexAccess
2019-05-10 11:28:10 +02:00
Erik Kundt
656364d967
Fixes Natspec parser error when whitespace is missing.
2019-05-10 10:53:32 +02:00
chriseth
c0b3da1369
Merge pull request #6664 from ethereum/add-func-defs
...
[Proto fuzzer] Add function calls, and multi variable declaration/assignment statements
2019-05-09 22:37:55 +02:00
chriseth
89700dbcff
Merge pull request #6665 from ethereum/smt_inline_external_this
...
[SMTChecker] Inline external function calls to `this`
2019-05-09 19:09:08 +02:00
chriseth
d9bdc4fd89
Merge pull request #6705 from ethereum/smt_fix_const_state_var
...
[SMTChecker] Fix function call at state var init
2019-05-09 19:05:32 +02:00
chriseth
5e5138869b
Test.
2019-05-09 17:57:30 +02:00
chriseth
6ee9ccf140
Test.
2019-05-09 17:36:40 +02:00
chriseth
3f55b52a88
Unify suffixes.
2019-05-09 17:07:18 +02:00
chriseth
eaee4412da
Implement word size transform for if.
2019-05-09 16:55:39 +02:00
Leonardo Alt
ef32bf185f
[SMTChecker] Inline external function calls to this.
2019-05-09 16:53:30 +02:00
Leonardo Alt
6027383ae5
[SMTChecker] Fix call to function at state var init
2019-05-09 16:12:44 +02:00
Bhargava Shastry
495f7f9013
[Proto fuzzer] Add function calls, and multi variable declaration/assignment statements
2019-05-09 16:00:29 +02:00
chriseth
c3a1c168d0
Merge pull request #6711 from ethereum/solYulIf
...
[Sol -> Yul] Implement if statements
2019-05-09 15:33:34 +02:00
chriseth
c093d00af1
Update gas test.
2019-05-09 15:27:42 +02:00
Daniel Kirchner
b83f6d8d46
[Sol -> Yul] Implement if statements
2019-05-09 14:52:20 +02:00
Leonardo
9e09b5d33b
Merge pull request #6679 from ethereum/smt_fix_ssa_reset
...
[SMTChecker] Fix ICE in touched vars
2019-05-09 12:17:32 +02:00
chriseth
0852ccc318
Merge pull request #4764 from ethereum/cbor-version
...
Store compiler version in CBOR metadata
2019-05-09 10:10:50 +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
Leonardo Alt
3d52a6ca68
[SMTChecker] Fix ICE in branch-inline function call-modify local variable
2019-05-09 09:15:11 +02:00
Daniel Kirchner
a6a28ac475
Allow overwriting the release flag for tests and adjust test suite to CBOR metadata.
2019-05-08 22:21:50 +02:00
Alex Beregszaszi
e121c8f3c7
Store compiler version in CBOR metadata
2019-05-08 22:21:50 +02:00
Daniel Kirchner
62dc8d0a87
Add ABIEncoderV2 cleanup tests.
2019-05-08 22:16:06 +02:00
chriseth
4d460915f3
Merge pull request #6655 from ethereum/storageMappings
...
[SolYul] Storage mappings
2019-05-08 20:38:46 +02:00
Leonardo
241b6b4bae
Merge pull request #6702 from ethereum/smt_fix_asgn_unsupported_type
...
[SMTChecker] Fix unsupported type assignment
2019-05-08 16:12:46 +02:00
chriseth
595544645e
Mappings.
2019-05-08 15:54:52 +02:00
chriseth
4037da9575
Merge pull request #6663 from ethereum/events
...
Events
2019-05-08 14:58:41 +02:00
chriseth
54a3116ab8
Merge pull request #6698 from ethereum/asmPrinterOneLine
...
Format short blocks and loops on a single line.
2019-05-08 14:46:02 +02:00
Leonardo Alt
0b046897ae
[SMTChecker] Fix unsupported type assignment
2019-05-08 14:28:23 +02:00
chriseth
b4d6f847b4
Events.
2019-05-08 13:29:11 +02:00
chriseth
5fb85a6118
Merge pull request #6662 from ethereum/msgSender
...
Implement most trivial members.
2019-05-08 13:28:43 +02:00
chriseth
0532a8cef2
Format short blocks and loops on a single line.
2019-05-08 13:28:00 +02:00
chriseth
97f16421f5
Merge pull request #6692 from ethereum/runEndToEndTestsViaYul
...
Run end to end tests via yul
2019-05-08 12:49:45 +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
Mathias Baumann
78105444f1
Test parsing: Don't use magic numbers
2019-05-08 10:46:19 +02:00
Daniel Kirchner
76b88bdfd8
Allow test cases to indicate fatal errors.
2019-05-07 18:12:21 +02:00
Daniel Kirchner
0a99519142
Move gas cost tests from command line tests to interactive gas cost tests.
2019-05-07 18:12:21 +02:00
chriseth
6c9c54a657
Merge pull request #6657 from ethereum/smt_tuple_multi_decl
...
[SMTChecker] Support tuples as multi var decl
2019-05-07 17:55:36 +02:00
chriseth
701aed4beb
Also run some end to end tests via yul.
2019-05-07 17:37:29 +02:00
chriseth
e43df3b72a
Move compile to cpp file.
2019-05-07 17:37:29 +02:00
chriseth
acca390ef5
Most trivial members.
2019-05-07 17:19:45 +02:00
chriseth
815a272238
Merge pull request #6688 from ethereum/whiskersCond
...
Conditionals for Whiskers
2019-05-07 17:12:53 +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
Leonardo Alt
3c7540ceb2
[SMTChecker] Support tuples with multiple var decls
2019-05-07 16:57:27 +02:00
chriseth
133fd18223
Merge pull request #6660 from ethereum/shortCircuiting
...
Short circuiting
2019-05-07 16:55:12 +02:00
chriseth
a4e8ca06df
Merge pull request #6687 from ethereum/rely-on_flush
...
TestFramework: Remove polling and use eth_flush instead
2019-05-07 16:54:36 +02:00
chriseth
a060dce9a8
Tests.
2019-05-07 16:48:00 +02:00
chriseth
c604481cef
Logical operators.
2019-05-07 15:59:35 +02:00
chriseth
055254847e
Merge pull request #6659 from ethereum/comparisonOperators
...
Comparison operators
2019-05-07 15:46:21 +02:00
Mathias Baumann
473243ef31
TestFramework: Remove polling and use eth_flush instead
2019-05-07 14:45:59 +02:00
chriseth
2370eefa74
Merge pull request #6680 from ethereum/fixExp
...
Fix interpreter exp bug.
2019-05-07 12:39: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
Erik Kundt
3a69a72eb9
Adds external ColonyNetworks tests.
2019-05-07 11:55:06 +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
chriseth
18bc82e6fd
Fix interpreter exp bug.
2019-05-07 11:40:33 +02:00
Erik Kundt
9956319e8b
Adds support for string literals to soltest.
2019-05-07 11:36:38 +02:00
chriseth
a21f8a0b66
Merge pull request #6675 from ethereum/smt_delete
...
[SMTChecker] Support delete
2019-05-07 11:27:41 +02:00
Leonardo Alt
2139c20776
[SMTChecker] Support delete
2019-05-06 18:32:10 +02:00
chriseth
f113f8e4a0
Implement datasize, dataoffset and datacopy for yul interpreter.
2019-05-06 16:59:47 +02:00
Leonardo
e99efec085
Merge pull request #6652 from ethereum/smt_tuple_function
...
[SMTChecker] Support tuples as function calls with multiple return values
2019-05-06 15:19:24 +02:00
chriseth
dee1c1109c
Merge pull request #6668 from ethereum/smt_fix_short_circuit
...
Fix short circuit with assignments
2019-05-06 11:40:07 +02:00
chriseth
36c78baa41
Merge pull request #6646 from ethereum/storageAccess
...
[Yul] Storage access for sol -> yul
2019-05-06 11:33:36 +02:00
Leonardo Alt
80712f44cb
Fix short circuit with assignments
2019-05-06 11:04:43 +02:00
Leonardo Alt
5440a53d4d
[SMTChecker] Support tuples as function calls with multiple return values
2019-05-03 06:10:22 +02:00
Bhargava Shastry
2d1faf53be
Reset loop state (to default) before interpreting for-loop post block
2019-05-02 22:22:19 +02:00
chriseth
befadea0c6
Merge pull request #6600 from sifmelcara/wasm-dialect-transpiler
...
Add a transformation that replace every u256 variable with four u64 variables
2019-05-02 20:52:58 +02:00
mingchuan
57fc4fde85
Add wordSizeTransform yulOptimizerTests
2019-05-03 01:52:01 +08:00
chriseth
c137455614
Merge pull request #6656 from ethereum/proto-add-terminating-opcodes
...
[Proto fuzzer]: Add terminating opcodes
2019-05-02 18:45:42 +02:00
chriseth
5bd3ed97bd
Merge pull request #6649 from ethereum/smt_tuple_asgn
...
[SMTChecker] Support tuple assignment
2019-05-02 18:43:16 +02:00
chriseth
e9f41d1148
Merge pull request #6604 from ethereum/library-self-delegatecall
...
Error on library calling itself externally
2019-05-02 17:25:25 +02:00
chriseth
aa4d4afcdc
LValues and state variables of value type.
2019-05-02 17:03:22 +02:00
chriseth
dcca6f6318
Tests that compile via Yul have to use the Yul optimizer.
2019-05-02 17:02:05 +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
Bhargava Shastry
a5524983f9
[Proto fuzzer]: Add terminating opcodes
2019-05-02 15:34:26 +02:00
Leonardo Alt
204dcf1771
[SMTChecker] Support tuple assignments
2019-05-02 12:55:34 +02:00
chriseth
54775a7880
Merge pull request #6647 from ethereum/smt_tuple_decl
...
[SMTChecker] Support tuple type declaration
2019-05-02 12:49:50 +02:00
Erik Kundt
07744dbd12
Throws error on library calling itself externally.
2019-05-02 12:41:07 +02:00
chriseth
d4c4a473d8
Merge pull request #6622 from ethereum/warn-this-super
...
Issue warning for variables called `super` or `this`
2019-05-02 12:38:53 +02:00
Leonardo Alt
6c7527ac90
[SMTChecker] Support tuple type declaration
2019-05-02 12:05:21 +02:00
chriseth
6b2dbbffe4
Merge pull request #6620 from ethereum/external-tests-abiv2
...
Fix typo in external test commons
2019-05-02 11:38:08 +02:00
Erik Kundt
672f874b54
Fixes typo in external test commons.
2019-05-02 11:33:11 +02:00
Mathias Baumann
cf35e5ba02
Issue warning for variables called super
or this
2019-05-02 11:30:24 +02:00
chriseth
73484ccaf2
Merge pull request #6640 from ethereum/smt_inherited_state_vars
...
[SMTChecker] Fix ICE in inherited state var
2019-05-02 10:49:34 +02:00
chriseth
2538bf897d
Merge pull request #6645 from ethereum/add-blockchain-ops
...
Support generation of calldata, code, extcode and returndata opcodes
2019-05-02 10:47:54 +02:00
Bhargava Shastry
ac7bfec2c0
Support generation of calldata, code, extcode and returndata opcodes
2019-05-02 10:14:25 +02:00
Leonardo Alt
dd4e938265
[SMTChecker] Fix ICE in inherited state var
2019-05-02 10:03:12 +02:00
Leonardo Alt
a6db37ac9c
[SMTChecker] Fix bad cast in base constructor modifier.
2019-04-30 18:48:13 +02:00
chriseth
dc13469593
Merge pull request #6589 from ethereum/addReturn
...
[Yul] Add code generation for "return" and for loops.
2019-04-30 17:07:45 +02:00
chriseth
3b3d9db7af
Merge pull request #6524 from ethereum/cmdlineUpdateInteractive
...
Only ask for cmdline test updates in interactive runs.
2019-04-30 17:05:53 +02:00
Erik Kundt
8103d22acf
Takes type formats in isoltest from contract ABI.
2019-04-30 16:01:04 +02:00
Mathias Baumann
00172192bf
Reorganize 'shadows builtin" syntax tests
2019-04-30 15:37:03 +02:00
chriseth
d940f6f7ef
Merge pull request #6611 from ethereum/smt_refactor_assignment
...
[SMTChecker] Refactor assignment handling
2019-04-30 15:26:51 +02:00
Bhargava Shastry
d894ffad16
Proto fuzzer: Add missing memory and log opcodes and fix visitation bug
...
for ternary ops
2019-04-30 14:18:00 +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
Leonardo Alt
0cdb9e48b0
Update SMTChecker JSON tests expectation
2019-04-30 11:08:36 +02:00
Erik Kundt
a6cc296cd9
Adds error reporter for auto-updates in (i)soltest.
2019-04-29 15:56:15 +02:00
chriseth
39d153b7a1
Merge pull request #6570 from ethereum/fixMetaSettings
...
Move metadata settings into its own object.
2019-04-29 15:09:27 +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
chriseth
eef3f95724
Move metadata settings into its own object.
2019-04-29 14:19:27 +02:00
chriseth
1eeca84cad
Merge pull request #6603 from ethereum/abi-function-assertion-fix
...
Removes assert on magic ABI functions in code generation
2019-04-29 10:15:47 +02:00
chriseth
578d618065
Merge pull request #6594 from ethereum/adjustCodeMetric
...
Increase code cost for branching statements.
2019-04-29 09:48:59 +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
chriseth
169b555a22
Merge pull request #6507 from ethereum/smt_address_members
...
[SMTChecker] Address members
2019-04-25 17:29:42 +02:00
Erik Kundt
15d753a3e0
Allows additional EVMVersion comparators in isoltest.
2019-04-25 17:13:17 +02:00
chriseth
bf104f718f
Increase code cost for branching statements.
2019-04-25 17:08:11 +02:00
chriseth
f9ec1231b6
Support period as part of identifiers for Yul and Inline Assembly.
2019-04-25 16:48:16 +02:00
chriseth
309d3e65cf
Merge pull request #6585 from ethereum/fixInvalidFunctionTags
...
Fix invalid function tags
2019-04-25 16:30:37 +02:00
Leonardo Alt
fc482de695
[SMTChecker] Support address members
2019-04-25 16:24:36 +02:00
chriseth
5b991c1e59
Fix use of uninitialized functions stored in storage.
2019-04-25 15:40:48 +02:00
chriseth
96688717a2
Merge pull request #6521 from ethereum/type_conv_yul-6479
...
Yul Generation: conversions
2019-04-25 14:29:37 +02:00
chriseth
b6bb3ae482
Merge pull request #6555 from sifmelcara/break-for-loop
...
[Yul] Disallow function definitions inside for loop init blocks
2019-04-25 11:20:44 +02:00
chriseth
f26cdea6ca
Disallow Yul function definitions inside for loop init blocks.
2019-04-25 10:32:00 +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
chriseth
6292adbde6
Merge pull request #6580 from ethereum/doNotGenerateInstructionsAsNmes
...
Prevent instructions to be generated as names.
2019-04-24 22:07:05 +02:00
chriseth
0af8d758a5
Prevent instructions to be generated as names.
2019-04-24 14:35:21 +02:00
mingchuan
5d93c492fe
[Yul] More accurate error messages for break/continue
2019-04-23 10:15:19 +02:00
chriseth
aad4373da4
Disable redundent assign eliminator for deeply nested loops.
2019-04-23 09:50:25 +02:00
chriseth
424c6f5639
Merge pull request #6550 from ethereum/smt_this
...
[SMTChecker] Support this as address
2019-04-19 00:42:33 +02:00
chriseth
1d5559c350
Merge pull request #6554 from ethereum/add-ternary-ops
...
ossfuzz: Generate addmod and mulmod builtin functions
2019-04-19 00:41:57 +02:00
Leonardo
f8b1326712
Merge pull request #6539 from ethereum/fix-dup-case-literals
...
ossfuzz: Fixes buggy generation of duplicate case literals
2019-04-19 00:40:26 +02:00
Leonardo Alt
dd1afeba52
[SMTChecker] Support this as address
2019-04-18 17:56:52 +02:00
chriseth
b02fbc5d02
Merge pull request #6503 from ethereum/inlineAsm-yul
...
Inline asm yul
2019-04-18 17:15:09 +02:00
Mathias Baumann
3d061c83d7
IR: Generate inline asm blocks
2019-04-18 16:49:19 +02:00
Bhargava Shastry
836c466f09
ossfuzz: Generate addmod and mulmod builtin functions
2019-04-18 14:21:02 +02:00
Bhargava Shastry
68b7f40184
ossfuzz: Fixes buggy generation of duplicate case literals
2019-04-18 14:12:23 +02:00
chriseth
fce19bde58
Merge pull request #6545 from ethereum/smt_contracts
...
[SMTChecker] Support contract type
2019-04-18 13:01:18 +02:00
chriseth
0bfd587363
Merge pull request #6527 from rocky/move-SemVerHandler
...
Move SemVerHandler to analysis to parsing to increase modularity...
2019-04-18 13:00:45 +02:00
chriseth
87a4ce2679
Merge pull request #6540 from ethereum/add-for-break-continue
...
Generate break and continue statements inside for loop body.
2019-04-18 12:57:40 +02:00
chriseth
fb302c1c4f
Merge pull request #6473 from ethereum/libeventhash-6435
...
Fix external ABI type name for contracts
2019-04-18 12:53:34 +02:00
Mathias Baumann
0f4b53e9a0
Fix external ABI type name for contracts
2019-04-18 11:39:48 +02:00
Leonardo Alt
ecd89393ee
[SMTChecker] Support contract type
2019-04-17 16:30:11 +02:00
hydai
d5b65fbf5b
[Yul] Output an error of a switch case which contains string literals longer than 32 chars
2019-04-17 22:17:18 +08:00
rocky
b424446c5f
Move SemVerHandler to analysis to parsing to increase modularity...
...
If ever you want to separate building analysis from scanning/parsing/ast, this will help.
2019-04-17 10:13:42 -04:00
chriseth
4509e8efbb
Merge pull request #6543 from ethereum/typeprovider-bits
...
TypeProvider bits
2019-04-17 15:50:08 +02:00
chriseth
922ab0d72d
Merge pull request #6534 from ethereum/reuseLiteralContent-6472
...
Re-produce the original 'useLiteralContent' setting
2019-04-17 15:41:55 +02:00
Mathias Baumann
b24dd42e47
Re-produce the original 'useLiteralContent' setting
2019-04-17 14:54:51 +02:00
Christian Parpart
721bf367a3
[libsolidity] TypeProvider: eliminate redundant "Type" suffix in provider function signatures.
2019-04-17 14:42:07 +02:00
chriseth
dd15c24320
Merge pull request #6490 from g-r-a-n-t/pass-large-strings-by-value
...
Pass large strings by value
2019-04-17 14:40:39 +02:00
Grant Wuerker
69b4ce36de
Some move semantics improvements.
2019-04-17 14:19:48 +02:00
Bhargava Shastry
6f673f5e81
Generate break and continue statements inside for loop body.
2019-04-17 13:02:47 +02:00
chriseth
669df0d1e5
Allow more filters and rename member.
2019-04-17 12:00:01 +02:00
Erik Kundt
827e13a2d7
Refactors passing of options in isoltest.
2019-04-17 11:36:14 +02:00
Erik Kundt
11087422d6
Adds --test | -t option to isoltest.
2019-04-17 11:36:14 +02:00
chriseth
b8ad8fb15e
Merge pull request #6417 from ethereum/memleaks
...
Type System API refactor
2019-04-17 11:04:24 +02:00
chriseth
b10fcb4b6c
Remove eval.
2019-04-17 10:16:41 +02:00
fnatic
5b6ed7a97c
Removing scope rules for pre block in 'For Loops'
2019-04-17 05:58:40 +05:30
Christian Parpart
58a45f2cb6
[libsolidity] TypeProvider: adds explicit uint256() accessor and removes default params in integerType(...).
2019-04-16 18:28:40 +02:00
Christian Parpart
bf43eebea9
libsolidity: Introducing TypeProvider API, for clear type system ownership.
2019-04-16 18:26:45 +02:00
Christian Parpart
862d798047
[test] AnalysisFramework's instance of CompilerStack to be lazily instanciated.
2019-04-16 18:25:03 +02:00
chriseth
94053c9a52
Merge pull request #6520 from ethereum/addAssertForLoopDeadCode
...
Add assertion that DeadCodeEliminator needs ForLoopInitRewriter.
2019-04-16 15:52:18 +02:00
chriseth
96d748fdad
Remove "pwd" calls, path is already absolute.
2019-04-16 14:43:32 +02:00
chriseth
6bc5068a67
Only ask for cmdline test updates in interactive runs.
2019-04-15 23:51:31 +02:00
chriseth
fb06451f45
Add assertion that DeadCodeEliminator needs ForLoopInitRewriter.
2019-04-15 23:26:56 +02:00
Mathias Baumann
efc8d79d53
Fix wrong location for inline asm blocks
2019-04-15 16:40:07 +02:00
chriseth
bf5792f7ca
Merge pull request #6483 from ethereum/smt_support_mod
...
[SMTChecker] Support mod
2019-04-15 13:42:18 +02:00
chriseth
73ac8f6220
Merge pull request #6421 from ethereum/smt_fix_variable_usage
...
[SMTChecker] Refactor VariableUsage
2019-04-15 13:39:10 +02:00
Leonardo Alt
af9f16e014
[SMTChecker] Support mod
2019-04-12 12:39:25 +02:00
Daniel Kirchner
65991c0922
Merge pull request #6481 from ethereum/smt_inline_asm_warning
...
[SMTChecker] Show unsupported warning for asm blocks
2019-04-12 12:36:26 +02:00
Daniel Kirchner
a4fbb06c2a
Merge pull request #6491 from ethereum/increase-maxSteps-for-opt-yul
...
Increase upper bound for number of interpreted steps for optimized code
2019-04-12 12:34:47 +02:00
Leonardo
dbc9442f9c
Merge pull request #6484 from sifmelcara/create-SourceReferenceFormatter-shortcut
...
Add a shortcut for formatting error information
2019-04-12 12:34:08 +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
Mathias L. Baumann
826f2d9084
Merge pull request #6502 from ethereum/fix-ifn-loop
...
Fix infinite loop when encountering unexpected test specifications
2019-04-11 15:23:40 +02:00
Mathias Baumann
71d752d878
Fix infinite loop when encountering unexpected test specifications
2019-04-11 13:37:42 +02:00
Erik Kundt
e97d4b4aec
Merge pull request #6488 from sifmelcara/cmdlineTests-auto-update
...
Auto-correct command line tests
2019-04-11 12:17:43 +02:00
mingchuan
d49733dfc3
Fix variable decl scope issue in DeadCodeEliminator
...
FoorLoopInitRewriter needs to be run before DeadCodeEliminator.
2019-04-10 19:00:29 +08:00
Bhargava Shastry
484c14af81
Increase upper bound for number of interpreted steps for optimized code
2019-04-10 12:57:54 +02:00
mingchuan
f1374066af
Add shortcuts for formatting error information
2019-04-10 18:44:45 +08:00
mingchuan
62a10d85d9
Auto-update command line expectations
...
Force auto-update all expectations, this make their trailing new lines
consistent
2019-04-08 20:40:04 +08:00
mingchuan
5b0bb0defb
Move lost command line test case to correct location
2019-04-08 20:39:58 +08:00
mingchuan
f705b09b21
Provide option to auto-correct cmdlineTests expectations
2019-04-08 20:39:49 +08:00
Leonardo Alt
4fe303530a
[SMTChecker] Show unsupported warning for asm blocks
2019-04-05 16:41:15 +02:00
chriseth
1be3882ade
Test shadowing between variables inside and outside of functions.
2019-04-05 13:41:39 +02:00
chriseth
d20b3c9f9f
Function grouper is a requirement for the VarNameCleaner.
2019-04-05 13:41:38 +02:00
Leonardo Alt
79d8a4e13a
[SMTChecker] Refactor VariableUsage
2019-04-05 11:38:37 +02:00
Mathias Baumann
a83e54cfd3
TestFramework: Use getBlockByNumber and eth_flush to get transaction confirmation
2019-04-04 16:39:15 +02:00
Mathias Baumann
58a3148ffb
TestFramework: also output failed request
2019-04-04 16:39:15 +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
50ded99b4d
Merge pull request #6470 from ethereum/throwInFuzzer
...
Throw exception to allow fuzzer to report which file it failed on.
2019-04-04 16:18:57 +02:00
chriseth
141c6da534
Semantic tests for compilation via Yul.
2019-04-04 15:02:43 +02:00
chriseth
420a7dc3d6
Initial IR generator.
2019-04-04 15:02:42 +02:00
Daniel Kirchner
d0fda7ca7c
Merge pull request #6262 from ethereum/abiEncodeCalldataArray
...
ABIEncoderV2: implement encoding of calldata arrays and structs.
2019-04-04 14:51:45 +02:00
chriseth
ef413bb0b3
Throw exception to allow fuzzer to report which file it failed on.
2019-04-04 14:05:38 +02:00
chriseth
3795569da6
Merge pull request #6448 from ethereum/forceYulOptimization
...
Run tests with both ABIV2 and Yul optimizer.
2019-04-04 13:51:54 +02:00
Bhargava Shastry
762dd24784
Reference only those variables that are in scope.
2019-04-04 13:28:56 +02:00
chriseth
c0ce540e26
Run tests with both ABIV2 and Yul optimizer.
2019-04-04 13:18:30 +02:00
Daniel Kirchner
91a2a9a9c3
Implement ABI encoding of calldata arrays and structs.
2019-04-04 13:05:32 +02:00
Bhargava Shastry
f15cedad7a
yulInterpreter: More fine-grained exception handling
2019-04-04 13:02:55 +02:00
chriseth
887112b1b0
Fix SSA for multi-assignments.
2019-04-04 12:06:04 +02:00
chriseth
8c570f31c5
Merge pull request #6442 from ethereum/smt_unary_inc_dec
...
[SMTChecker] Support unary inc/dec for array/mapping access
2019-04-04 11:45:13 +02:00
chriseth
ee2f566207
Merge pull request #5815 from ethereum/strict-abi-decoder
...
Strict abi decoder (validate incoming data instead of cleaning it)
2019-04-04 11:13:44 +02:00
Mathias Baumann
d46f29e128
Add bitshift optimizer tests
2019-04-03 22:38:31 +02:00
Daniel Kirchner
5ff1f85231
Adjust semantics tests.
2019-04-03 17:59:04 +02:00
chriseth
e3d7a34c2c
Make yul a setting.
2019-04-03 14:58:20 +02:00
chriseth
aeb260cde1
Add settings framework for interactive tests.
2019-04-03 14:58:20 +02:00
chriseth
3282c72a21
Update tests.
2019-04-03 11:32:03 +02:00
Alex Beregszaszi
43008dd08e
Validate value types in decoder of ABIEncoderV2.
2019-04-03 11:32:02 +02:00
chriseth
1b7878cfde
Merge pull request #6445 from ethereum/circularStorageMemoryCopy
...
Implemented copying recursive structs from storage to memory.
2019-04-03 10:20:23 +02:00
Leonardo Alt
aa9b9aa87e
[SMTChecker] Support unary inc/dec for array/mapping access
2019-04-02 16:53:19 +02:00
Daniel Kirchner
ab8dfed144
Implement copying recursive structs from storage to memory.
2019-04-02 16:01:44 +02:00
chriseth
7c880a26c0
Merge pull request #6431 from ethereum/external-tests-split
...
Split up external tests
2019-04-02 14:39:00 +02:00
Erik Kundt
79e74b75d1
Splits up external tests into separate files.
2019-04-02 13:42:58 +02:00
Bhargava Shastry
0cc6e1cb08
Use default EVMVersion instead of a hard coded one
2019-04-02 11:40:59 +02:00
chriseth
e894e0b967
Merge pull request #6410 from ethereum/eliminate-dead-code
...
Yul Optimizer: Remove dead code
2019-04-01 18:12:47 +02:00
chriseth
862ad28edd
Merge pull request #6433 from ethereum/fuzzhelp
...
Run several instances of solfuzzer in parallel
2019-04-01 17:49:58 +02:00
Mathias Baumann
3216e5d846
Run several instances of solfuzzer in parallel
2019-04-01 17:18:15 +02:00
Mathias Baumann
e20acf5d0a
Yul Optimizer: Remove dead code
2019-04-01 17:16:04 +02:00
Mathias Baumann
30820dda99
Support multiple input files with solfuzzer
2019-04-01 16:57:32 +02:00
chriseth
e7340f2126
Merge pull request #6430 from ethereum/fuzzhelp
...
Fix --help parameter for solfuzzer
2019-04-01 16:51:15 +02:00
Mathias Baumann
101ca5c120
Fix --help parameter for solfuzzer
...
the `readStandardInput()` branch would be taken if "input-file" was not
given and only "help", thus never reaching the check for "help"
2019-04-01 15:50:34 +02:00
chriseth
45e3cce765
Force-activate ABIEncoderV2 in external tests.
2019-04-01 15:36:03 +02:00
Erik Kundt
c72686b343
Fixes forced optimizer settings in external tests.
2019-04-01 14:53:21 +02:00
Mathias Baumann
5c66ccc179
Optimize obsolete ANDs in combination with certain SHIFTs
2019-03-29 10:08:05 +01:00
Alex Beregszaszi
84fbf605aa
Replace shifts by larger than 255 with 0
2019-03-29 10:07:54 +01:00
chriseth
f9820adb5e
Merge pull request #6396 from ethereum/optSetForAsmStack
...
Make optimiser settings available to assembly stack.
2019-03-28 19:03:23 +01:00