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