Commit Graph

3268 Commits

Author SHA1 Message Date
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