Commit Graph

3352 Commits

Author SHA1 Message Date
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
chriseth
84251e5a22
Merge pull request #6405 from ethereum/smt_compound_assignment
[SMTChecker] Support arithmetic compound assignment operators.
2019-03-28 18:27:25 +01:00
chriseth
3264e9abf0 Make optimiser settings available to assembly stack. 2019-03-28 18:24:13 +01:00
Leonardo Alt
dadafed022 Short circuit tests 2019-03-28 16:08:30 +01:00
Leonardo Alt
a7e826a224 [SMTChecker] Implement short circuit 2019-03-28 16:08:30 +01:00
chriseth
a1d59dfb4c
Merge pull request #6371 from ethereum/smt_variable_usage_function_calls
[SMTChecker] Merge SSA state vars properly
2019-03-28 15:54:31 +01:00
chriseth
30da62aa2c
Merge pull request #6408 from ethereum/includeCleanup
Include cleanup
2019-03-28 15:31:07 +01:00
Leonardo Alt
c7e5468505 Arithmetic compound assignment operators tests 2019-03-28 15:27:52 +01:00
chriseth
2b0c653f57
Merge pull request #6241 from ethereum/yul-bc-codegen
Yul codegen for break & continue statements
2019-03-28 14:48:50 +01:00
chriseth
20ae3ad555 Remove "using namespace". 2019-03-28 14:32:48 +01:00
Leonardo Alt
2764d2f525 Tests that used to give false negatives 2019-03-28 14:32:47 +01:00
chriseth
529aca5cbd
Merge pull request #6407 from ethereum/changeNamespace
Remove "using namespace" from header and move Instruction to dev::eth.
2019-03-28 14:32:07 +01:00
Christian Parpart
b8c6274179 [yul] Implements EVM codegen for break/continue plus respective tests & ChangeLog entry. 2019-03-28 14:09:25 +01:00
chriseth
2308904f68 Remove "using namespace" from header and move Instruction to dev::eth. 2019-03-28 13:48:11 +01:00
chriseth
6d8e84c93e
Merge pull request #6315 from ethereum/yul-for-continue-tests
[Yul] RedundantAssignEliminator adoptions for continue/break AST nodes
2019-03-28 12:18:02 +01:00
chriseth
ff1e5c2298
Merge pull request #6372 from ethereum/update-external-tests
Update external tests
2019-03-28 11:26:38 +01:00
Erik Kundt
3e6de8904b Reactivates external gnosis-safe tests. 2019-03-28 10:31:08 +01:00
Erik Kundt
7808af79ae Modularize external test setup. 2019-03-28 10:31:03 +01:00
chriseth
91f96c299e More logic about control flow with continue and about finalize. Remove BlockScope. 2019-03-27 22:16:31 +01:00
Bhargava Shastry
10c3b31fa4 yulInterpreter: Add timeout based on the number of interpreted statements. 2019-03-27 12:06:02 +01:00
Christian Parpart
a1ec49409d Yul] RedundantAssignEliminator: Implements break/continue handling within ForLoop. 2019-03-26 17:36:43 +01:00
Bhargava Shastry
b3c3a1f9cd Use visitor pattern for proto converter. 2019-03-26 16:39:44 +01:00
chriseth
72c0e44907
Merge pull request #6338 from ethereum/compilerstack-setsource
Introduce setSources in CompilerStack
2019-03-26 15:31:57 +01:00
Bhargava Shastry
ef94d6d645 yul Interpreter: Move memory size limit to interpreter state. 2019-03-26 14:42:25 +01:00
Bhargava Shastry
a895ccba39 ossfuzz: Enable optimization in Assembly stack assembler call. 2019-03-26 13:42:51 +01:00
Mathias Baumann
bfe3f378b2 Fix throw in error output 2019-03-26 11:32:08 +01:00
chriseth
d079cdbfaa
Merge pull request #6362 from ethereum/fixABIEncoderV2StorageRead
Fix abi encoder v2 storage read
2019-03-26 10:23:08 +01:00
Alex Beregszaszi
e211b5b1e1 Add warning that Yul is still experimental 2019-03-25 20:17:11 +00:00
Alex Beregszaszi
0432401e20 Emit warning when using the Yul optimiser 2019-03-25 18:38:06 +01:00
chriseth
6b9c44d5f9 Tests for arrays. 2019-03-25 18:28:44 +01:00
chriseth
3039456f48 Tests for encoder from storage bug. 2019-03-25 18:28:43 +01:00
Alex Beregszaszi
3ee8bb6814 Use setSource in tests 2019-03-25 15:11:08 +00:00
Mathias L. Baumann
dce27bb452
Merge pull request #6370 from ethereum/more-info-after-ci-fail
Provide more info when CI fails
2019-03-25 16:08:16 +01:00
Mathias Baumann
e478115d26 Provide more info when CI fails 2019-03-25 15:16:03 +01:00
Alex Beregszaszi
76c3c54c12
Merge pull request #6360 from ethereum/split-imports-test
Split imports tests to avoid resetting CompilerStack
2019-03-25 13:15:38 +00:00
chriseth
caddce6ef0 Detect duplicate cases based on integer value of case label. 2019-03-25 12:38:22 +01:00
Alex Beregszaszi
d9303d4cfb Split imports tests to avoid resetting CompilerStack 2019-03-25 11:33:21 +00:00
chriseth
b17daee20e
Merge pull request #6358 from ethereum/fixLLLTests
Fix LLL tests.
2019-03-25 11:49:53 +01:00
chriseth
31fa51b1f8 Fix LLL tests. 2019-03-25 10:53:49 +01:00
Alex Beregszaszi
532d43e0c8 Exclude metadata in compiler test
In SolidityCompiler/does_not_include_creation_time_only_internal_functions.
2019-03-22 17:35:15 +00:00
Alex Beregszaszi
3bc2c35cc4 Support compiling Yul within StandardCompiler 2019-03-22 01:35:16 +00:00
Alex Beregszaszi
ed1ad2fc14
Merge pull request #6317 from ethereum/byte_optimization_bugfix
Fixes bug in byte optimization rule and adds tests.
2019-03-21 21:49:34 +00:00
Alex Beregszaszi
7d94d3af20
Merge pull request #6309 from ethereum/proto-add-str-hex-lit
yul proto: Add support for generating string and hex literals.
2019-03-21 21:47:58 +00:00
Alex Beregszaszi
cbbc2df506
Merge pull request #6351 from ethereum/smt_shortcircuit_test
[SMTChecker] Add buggy short circuit test
2019-03-21 21:24:51 +00:00
Leonardo Alt
2ae778bf0a [SMTChecker] Add buggy short circuit test 2019-03-21 18:47:14 +01:00
chriseth
2de5554e4a Fix MacOS commandline tests. 2019-03-21 18:19:05 +01:00
Bhargava Shastry
f7b5a27581 Fixes bug in byte optimization rule and adds tests. 2019-03-21 14:29:06 +01:00
Bhargava Shastry
d1d3dd8571 yul proto: Add support for generating string and hex literals. 2019-03-21 12:25:52 +01:00
chriseth
d381e26fc8 Rename "enabled" optimizer setting stage to "standard". 2019-03-21 11:04:40 +01:00
chriseth
51ae865b96
Merge pull request #6222 from ethereum/internal-error-maybe
Disallow internal function types as parameters for public/external library function
2019-03-21 09:18:23 +01:00
chriseth
ebb8c1758e
Merge pull request #6339 from ethereum/lll-test-fix
Fix LLL tests using the opimiser
2019-03-21 08:54:07 +01:00
Mathias Baumann
8e899a0d32 Disallow internal function types as parameters for public/external library function 2019-03-21 07:25:57 +01:00
Alex Beregszaszi
7ec3eaa40d Fix LLL tests using the opimiser 2019-03-20 19:21:24 +00:00
Bhargava Shastry
22f5a82edc yul proto: Add support for generating for and switch statements. 2019-03-20 18:50:27 +00:00
chriseth
064f73be0c
Merge pull request #6249 from ethereum/optimizerTests
Change optimizer tests so that they also always test the peephole optimizer.
2019-03-20 18:38:06 +01:00
chriseth
9aab2329ed
Merge pull request #6244 from ethereum/smt_modifiers
[SMTChecker] Support modifiers
2019-03-20 18:04:28 +01:00
chriseth
6ac0ee1751
Merge pull request #5946 from bshastry/yul_opt_ossfuzz
Adds an oss-fuzz harness to fuzz AssemblyStack API calls for parsing …
2019-03-20 16:26:56 +01:00
chriseth
d788a88873 Use "none" and "full" optimizer settings in the optimizer tests. 2019-03-20 16:11:37 +01:00
chriseth
2fd6661b09 Add tests for some optimizer rules. 2019-03-20 16:10:59 +01:00
chriseth
8468dca0bb
Merge pull request #6323 from ethereum/bug-637
Fix function calls with named arguments for overloaded functions
2019-03-20 16:07:09 +01:00
Bhargava Shastry
6c1d0b62b5 Adds oss-fuzz harnesses to fuzz AssemblyStack API calls for parsing/optimizing StrictAssembly and generating EVM bytecode. 2019-03-20 16:06:45 +01:00
chriseth
57f99247c8 Update tests. 2019-03-20 15:07:05 +01:00
chriseth
8514c0bc60 Provide max iterations for stack compressor as parameter. 2019-03-20 15:07:05 +01:00
chriseth
38cbf8d230 Pass "optimize stack allocation" flag down to the stack compressor. 2019-03-20 15:03:27 +01:00
Mathias Baumann
84b68006ba Fix function calls with named arguments for overloaded functions 2019-03-20 14:54:41 +01:00
Leonardo Alt
9659f40c8d [SMTChecker] Support modifiers 2019-03-20 11:32:20 +01:00
chriseth
4d89fc1644
Merge pull request #6320 from ethereum/callvalue_nonpayable
Inline Assembly: Issue error for callvalue in nonpayable function
2019-03-20 10:07:09 +01:00
Leonardo Alt
0386d39942 Add test with internal function 2019-03-19 20:45:27 +01:00
Leonardo Alt
9acec99c31 Issue error for callvalue in nonpayable function 2019-03-19 20:45:27 +01:00
chriseth
87ebb16890 Use ABI_CHECK for event data comparison. 2019-03-19 17:23:50 +01:00
chriseth
304ef77b4a
Merge pull request #6300 from ethereum/extractedTestsEVMVersionRules
Support EVM Version rules for extracted tests.
2019-03-18 15:29:04 +01:00
Daniel Kirchner
a178486436 Review suggestions. 2019-03-18 14:34:00 +01:00
Christian Parpart
82ced641e5
[Yul] Adds another test case for multiple continue statements within a for-loop 2019-03-18 12:43:20 +01:00
chriseth
834c23fc38
Merge pull request #6289 from ethereum/strictasm_fuzzer_ascii_only
Discard fuzz input containing non ASCII character(s).
2019-03-18 11:44:06 +01:00
Bhargava Shastry
725fc898fd Discard fuzz input containing at least one character not in the following set: "isprint"able, newline, and horizontal
Co-Authored-By: bshastry <bshastry@ethereum.org>
2019-03-18 10:36:43 +01:00
Daniel Kirchner
4a28e1eb43 Support EVM Version rules for extracted tests. 2019-03-15 17:23:20 +01:00
Bhargava Shastry
5e8ed426df Add more binary operations to the yul proto spec. 2019-03-14 22:26:25 +01:00
chriseth
500843f9c5
Merge pull request #6242 from ethereum/yul-bc-dataflow
Yul dataflow analysis for continue/break statements
2019-03-14 16:34:34 +01:00
Christian Parpart
57bcb8ba83
[yul] Ensures DataFlowAnalyzer works fine with break/continue statements just like without. 2019-03-14 16:18:45 +01:00
chriseth
85a0d6a334
Merge pull request #6118 from ethereum/useStackOpt
Use stack optimizations.
2019-03-14 15:58:47 +01:00
chriseth
a3fbbe2019
Merge pull request #6291 from ethereum/proto-bugfixes
Proto spec and translator bug fixes.
2019-03-14 15:54:29 +01:00
Bhargava Shastry
5681086d2c Proto spec and translator bug fixes. 2019-03-14 15:40:54 +01:00
chriseth
308e3ef1cd Add test for standard compiler. 2019-03-14 15:34:23 +01:00
chriseth
49d914a391 Fix and test yul stack optimization flag for commandline interface. 2019-03-14 15:34:23 +01:00
chriseth
6d1ed93247 Use stack optimizations. 2019-03-14 15:34:23 +01:00
Erik Kundt
b9a7a88346 Improves Result<T> in order to prevent defects. 2019-03-14 14:33:28 +01:00
Erik Kundt
6ac5c52528 Implements merging of Result<T>. 2019-03-14 14:33:28 +01:00
chriseth
d1d6d59c80
Merge pull request #6281 from ethereum/fixYulAssertion
Fix assertion in yul interpreter.
2019-03-14 11:22:51 +01:00
Erik Kundt
ac5f860df9 Fixes hex string update via isoltest. 2019-03-14 11:01:26 +01:00
chriseth
db379403fc Fix assertion in yul interpreter. 2019-03-13 20:58:15 +01:00
Erik Kundt
2a536911f2 Prints returned / expected byte ranges if conversion failed. 2019-03-13 17:45:02 +01:00
chriseth
55c66b0178 Fix gas costs. 2019-03-13 14:18:53 +01:00
chriseth
2896d6176b
Merge pull request #6120 from ethereum/soltest-hex-strings
[soltest] Add support for hex string literals
2019-03-13 14:12:32 +01:00
Erik Kundt
25ddf85d95 Adds support for hex string literals in soltest. 2019-03-13 12:37:33 +01:00
chriseth
58a3f3cf68
Merge pull request #6248 from ethereum/shiftopt-fix-overflow
Fixes u256 overflow in logical shift optimization rule and adds tests.
2019-03-13 12:02:33 +01:00
Bhargava Shastry
515fa872c8 Fixes u256 overflow in logical shift optimization rule and adds tests. 2019-03-13 11:19:20 +01:00
Erik Kundt
39c45ac8ed Moves ecrecover tests to isoltest. 2019-03-13 10:53:10 +01:00
Christian Parpart
cfefa2c1d1
Merge pull request #6136 from ethereum/yul-break-continue
[Yul] introduce break/continue keywords.
2019-03-11 20:38:57 +01:00
chriseth
8445449c7f
Merge pull request #6187 from ethereum/filter-library-abi-3409
Exclude internal functions in library ABIs
2019-03-11 17:39:51 +01:00
chriseth
6683ec90ca
Merge pull request #6209 from ethereum/dynamicCalldataStructs
Allow dynamically encoded calldata structs with ABIEncoderV2.
2019-03-11 17:05:34 +01:00
Daniel Kirchner
66fc7ffab2 Allow dynamically encoded calldata structs with ABIEncoderV2. 2019-03-11 16:40:13 +01:00
Mathias Baumann
fbbd03dbd7 Exclude internal functions in library ABIs 2019-03-11 16:33:44 +01:00
Mathias Baumann
e411a502fd Fix missing trailing dot in error message 2019-03-11 16:15:18 +01:00
Daniel Kirchner
f805939429
Merge pull request #6221 from ethereum/soltest-signature-struct-arrays
[soltest] Allow struct array in function signatures
2019-03-11 15:32:42 +01:00
Alex Beregszaszi
859f905b2e
Merge pull request #6237 from ethereum/smt_merkle_proof_test
[SMTChecker] Add MerkleProof test that used to crash
2019-03-11 15:17:46 +01:00
Christian Parpart
05e2d362c8 [Yul] Adds break/continue statements and some general tests for for-loop syntax. 2019-03-11 15:05:05 +01:00
chriseth
0f98f2a15e
Merge pull request #6236 from ethereum/better-errors
isImplicitlyConvertibleTo(): Add better error messages
2019-03-11 14:58:45 +01:00
Erik Kundt
cd9c0914cb Allows struct array in soltest function. 2019-03-11 14:36:16 +01:00
Alex Beregszaszi
6718b62f94
Merge pull request #6233 from ethereum/metadata-tests
Improve metadata tests (add CBOR parser)
2019-03-11 14:35:04 +01:00
Leonardo Alt
365b59b1f9 Add MerkleProof test that used to crash 2019-03-11 14:29:47 +01:00
Mathias Baumann
d70cb375cf isImplicitlyConvertibleTo(): Add better error messages 2019-03-11 13:38:02 +01:00
Alex Beregszaszi
67c15a208d Use CBOR parser in metadata tests 2019-03-11 13:01:37 +01:00
Alex Beregszaszi
61220eb3e0 Add tiny CBOR parser 2019-03-11 13:01:37 +01:00
Leonardo Alt
a8209e9899 [SMTChecker] Shortcut RationalNumber expressions 2019-03-11 12:53:49 +01:00
Alex Beregszaszi
12f34c8229 Add onlyMetadata helper in test/Metadata 2019-03-09 12:34:26 +01:00
chriseth
5c4a3aa270
Merge pull request #6213 from ethereum/iszeroJump
Peephole optimizer for "iszero iszero <tag> jumpi".
2019-03-07 18:16:29 +01:00
chriseth
0eb799424d
Merge pull request #6183 from ethereum/soltest-alignment
[soltest] Introduce explicit alignment
2019-03-07 17:43:59 +01:00
chriseth
e0d1b2f5b3 Peephole optimizer for "iszero iszero <tag> jumpi". 2019-03-07 15:52:02 +01:00
Leonardo Alt
02d0e609b9 [SMTChecker] Support enums 2019-03-07 15:15:12 +01:00
chriseth
7241aa755c
Merge pull request #6186 from ethereum/runExternalTestsWithOptimizer
Run external tests with and without optimizer.
2019-03-07 12:57:03 +01:00
chriseth
8d9be8bb6d
Merge pull request #6211 from ethereum/fixFormatting
Fix formatting and compilation error.
2019-03-06 22:55:02 +01:00
chriseth
553f578d03 Fix compilation error. 2019-03-06 22:01:19 +01:00
chriseth
791fde953d First simplify switch with known constant expression. 2019-03-06 21:32:55 +01:00
chriseth
aa062221bb Tabs, not spaces! 2019-03-06 21:32:10 +01:00
chriseth
0f336f30ca
Merge pull request #6207 from ethereum/fixStructuralVisitationOrder
Fix visitation order bug for structural simplifier.
2019-03-06 21:29:17 +01:00
chriseth
0f7b1b31a1
Merge pull request #5996 from ethereum/calldataArrays
Allow calldata arrays with dynamically encoded base type.
2019-03-06 19:55:57 +01:00
chriseth
21115f8050 Fix visitation order bug for structural simplifier. 2019-03-06 19:34:07 +01:00
Mathias Baumann
21322dae29 YulOpt: Remove empty cases 2019-03-06 19:02:23 +01:00
Mathias Baumann
3ce7069766 YulOpt: Remove empty cases 2019-03-06 18:39:44 +01:00
Erik Kundt
a40fbf0fc4 Right-aligns hex numbers and introduces alignment built-ins. 2019-03-06 18:24:13 +01:00
chriseth
3ccf73b3eb
Merge pull request #6204 from ethereum/soltest-signature-arrays
[soltest] Add support for arrays in function signatures
2019-03-06 18:12:39 +01:00
Daniel Kirchner
e3148b5c45 Tests for arrays with dynamically encoded base types. 2019-03-06 18:04:24 +01:00
Daniel Kirchner
f9dc30c3d1 Add generalized dynamic array encoding to ExecutionFramework. 2019-03-06 18:04:12 +01:00
Daniel Kirchner
f7c6eda2c3 Allow calldata arrays with dynamically encoded base type. 2019-03-06 18:04:12 +01:00
chriseth
cdf29277f7
Merge pull request #6055 from ethereum/smt_arrays
[SMTChecker] Add support to arrays
2019-03-06 18:00:23 +01:00
Erik Kundt
ab31c28ed9 Adds support for arrays in function signatures. 2019-03-06 16:47:00 +01:00
chriseth
dc69152238
Merge pull request #6143 from ethereum/fix-unimplemented-assert-5659
Check base contracts for abi encoder compatibility
2019-03-06 11:59:49 +01:00
Bhargava Shastry
54d0d153fa Reduce input file size for solc and constant optimizer fuzzers. 2019-03-06 11:35:22 +01:00
Leonardo Alt
29b2ab6f66 Handle aliasing 2019-03-06 11:29:54 +01:00
Leonardo Alt
cb6c2b33f8 Add tests 2019-03-06 11:29:26 +01:00
Leonardo Alt
e74f58130e Add SMT type support to Solidity arrays 2019-03-06 11:29:26 +01:00
Mathias Baumann
9919670ddd Check base contracts for abi encoder compatibility 2019-03-06 11:16:54 +01:00
chriseth
4740dc62df
Merge pull request #6193 from ethereum/yul-opt-different-types-6181
YulOpt: Extend StructuralSimplifier to work with all types
2019-03-05 19:11:13 +01:00
Mathias Baumann
f6e09d6368 YulOpt: Extend StructuralSimplifier to work with all types 2019-03-05 18:39:27 +01:00
Mathias Baumann
921d52bfcd Move Literal to u256 conversions to extra functions
That way we can reuse them at different places
2019-03-05 18:39:27 +01:00
Bhargava Shastry
a370551ea2 ossfuzz: Reduce test input size to less than equal to 600 bytes. 2019-03-05 16:55:55 +01:00
chriseth
d70da689ef Run external tests with and without optimizer. 2019-03-05 14:53:36 +01:00
Bhargava Shastry
d9bcbe6ad5 LibProtobuf Mutator (LPM) based fuzzer for yul subset 2019-03-05 12:32:55 +01:00
chriseth
d0ab5454f8
Merge pull request #6171 from ethereum/ignorePrefixWhileInlining
Do not prepend function name to all variables when inlining.
2019-03-05 11:36:53 +01:00
chriseth
bbda89c428 Create a differential fuzzer using tracing facility from the yul interpreter. 2019-03-04 20:44:17 +01:00
chriseth
6c9961e040
Merge pull request #5941 from ethereum/metadata-compilerstack
Metadata should not require compilation
2019-03-04 18:53:07 +01:00
chriseth
2d48377f4b
Merge pull request #6157 from ethereum/allocate-memory
Add allocateMemory helper with value known at compile time
2019-03-04 18:35:04 +01:00
chriseth
3f784d6e00 Do not prepend function name to all variables when inlining. 2019-03-04 18:07:00 +01:00
chriseth
38831e885d
Merge pull request #5855 from ethereum/cp
[Yul] Variable Name Canonicalization
2019-03-04 17:58:45 +01:00
Alex Beregszaszi
a96cc6e0e8 Add allocateMemory helper with value known at compile time 2019-03-04 17:46:42 +01:00
Christian Parpart
609855546e Yul: Adds optimizer pass to make variable names suffix-canonical. 2019-03-04 17:26:56 +01:00
chriseth
62b2599cb7 Update tests. 2019-03-04 16:31:08 +01:00
Alex Beregszaszi
fcbb8ec51c Allow returning metadata in StandardCompiler without compilation 2019-03-04 16:19:55 +01:00
chriseth
9a949c1bda Set default EVM version to Petersburg. 2019-03-04 14:53:00 +01:00
Alex Beregszaszi
ecd246aeb6 Support petersburg in evmVersion 2019-03-04 14:10:41 +01:00
chriseth
2e0ea16a0f
Merge pull request #5959 from ethereum/optimiser2
Introduce global optimiser settings.
2019-03-04 12:54:59 +01:00
chriseth
5490a5cd37
Merge pull request #6115 from ethereum/fixUnavailableOpcodes
Make unavailable opcodes errors.
2019-03-04 12:26:22 +01:00
chriseth
43850d55f3 Update tests. 2019-03-04 11:44:54 +01:00
chriseth
851dd635eb Remove defaults in constructor arguments. 2019-03-04 11:41:52 +01:00
chriseth
5ddbc434d6 Provide commandline option to activate yul optimizer. 2019-03-04 11:40:28 +01:00
chriseth
4d10f4b4cf Process and validate standard-json optimizer settings. 2019-03-04 11:40:28 +01:00
Alex Beregszaszi
cf5c13f9c7 Introduce global optimiser settings. 2019-03-04 11:40:28 +01:00
chriseth
0e475438a9
Merge pull request #6142 from ethereum/yul_interpreter_fix_overflow
yulInterpreter: Fix u256 overflow in logMemory.
2019-02-28 23:29:14 +01:00
chriseth
8f5e12c192 Make unavailable opcodes errors. 2019-02-28 22:20:01 +01:00
Alex Beregszaszi
c3ab43dca7 Remove blockhash workaround in tests
This is now obsolete as final constantinople doesn't contain the blockhash EIP.

Revert 3e55aa3fa2.
2019-02-28 21:17:58 +00:00
Bhargava Shastry
c48cc19fae yulInterpreter: Fix u256 overflow in logMemory. 2019-02-28 16:42:50 +01:00
chriseth
ab33ff1408
Merge pull request #6132 from ethereum/ossfuzz-nullref-typechecker
TypeChecker: Check if type exists before dereferencing it
2019-02-28 16:38:54 +01:00
chriseth
3dee9c50cd
Merge pull request #6131 from ethereum/fix-yul-opt
Yul Optimizer: reduce switches with const arguments
2019-02-28 16:28:53 +01:00
Mathias Baumann
50b4193705 TypeChecker: Check if type exists before dereferencing it 2019-02-28 15:49:15 +01:00
Mathias Baumann
c686a65876 Yul Optimizer: reduce switches with const arguments 2019-02-28 15:43:10 +01:00
chriseth
6aab3b1369
Merge pull request #6139 from ethereum/compilerstack-restrict
Restrict the state when settings can be altered in CompilerStack
2019-02-28 14:52:52 +01:00
Alex Beregszaszi
8b6049b733
Merge pull request #6111 from ethereum/fuzz-crash-smt
Fix SMT Checker crash due to missing type information
2019-02-28 13:19:32 +00:00
Alex Beregszaszi
b04b86a938 Restrict the state when settings can be altered in CompilerStack 2019-02-28 12:55:36 +00:00
chriseth
e9543d83c7
Merge pull request #6129 from ethereum/expressionSimplifierToUseDataFlowAnalyzer
Fix expression simplifying by moving from SSAValueTracker to DataFlowAnalyzer as a base.
2019-02-28 12:21:41 +01:00
Mathias Baumann
f782125463 Fix SMT Checker crash due to missing type information 2019-02-28 11:55:45 +01:00