chriseth
e6fee257e6
Code generation for access to contract code.
2019-01-17 20:36:48 +01:00
chriseth
2fcfb216b5
Syntax for meta type information.
2019-01-17 20:36:48 +01:00
chriseth
44237211d1
Tests.
2019-01-17 20:36:48 +01:00
Leonardo Alt
83e7233bb8
Change error message and add tests
2019-01-17 14:28:03 +01:00
Leonardo Alt
a10db051de
[SMTChecker] Support basic typecast
2019-01-16 13:00:54 +01:00
Daniel Kirchner
81f24f24e6
Add equivalent function combiner as Yul optimizer step.
2019-01-15 17:21:03 +01:00
Daniel Kirchner
4c8f8e9491
Disallow mismatching types in switch cases and detect duplicates by value for number literals.
2019-01-15 16:32:21 +01:00
chriseth
950e193642
Merge pull request #5765 from ethereum/unreachableCode
...
Warn about unreachable code.
2019-01-10 11:31:54 +01:00
Daniel Kirchner
0dfd4a726e
Warn about unreachable code.
2019-01-10 10:36:50 +01:00
chriseth
b7ef850955
Update tests.
2019-01-09 16:57:33 +01:00
chriseth
edda79eec5
Variables are free with regards to code size.
2019-01-09 16:57:33 +01:00
chriseth
9244b8ea5a
More code for optimizer tuning.
2019-01-08 18:07:14 +01:00
chriseth
5b8b016fae
Use the block flattener.
2019-01-08 16:02:14 +01:00
chriseth
884d51c1f2
Merge pull request #5759 from ethereum/anotherBigTest
...
Another ABI test case for the optimizer.
2019-01-08 16:01:41 +01:00
chriseth
2d19903d1a
Another ABI test case for the optimizer.
2019-01-08 15:14:45 +01:00
chriseth
f5b24a38b8
Make function grouper idempotent.
2019-01-08 15:05:09 +01:00
chriseth
6414d63906
Merge pull request #5716 from ethereum/fixDataSizeOffset
...
Fix data size offset and properly provide builtins.
2019-01-08 00:07:42 +01:00
chriseth
40e1283d72
Merge pull request #5713 from ethereum/addAztek
...
[Yul] Add AZTEK code as test.
2019-01-07 17:25:41 +01:00
chriseth
ace601b8f6
Tests.
2019-01-07 17:23:38 +01:00
chriseth
5b73c2ae3b
Take special functions that require literals into account.
2019-01-07 17:23:38 +01:00
chriseth
9f5d34af7d
Merge pull request #5752 from ethereum/addDialect
...
[Yul] Refactor: Make the dialect available everywhere.
2019-01-07 17:23:05 +01:00
chriseth
9222eff08f
Make the dialect available everywhere.
2019-01-07 16:41:03 +01:00
chriseth
b604b87272
Add AZTEK code as test.
2019-01-07 16:23:35 +01:00
androlo
d2105be57d
Move actual test files.
2019-01-07 15:05:54 +01:00
chriseth
6e626ad955
Unify json and non-json commandline tests.
2019-01-07 14:50:49 +01:00
androlo
b18c8a60ff
Use directories for tests.
2019-01-07 14:50:49 +01:00
chriseth
633228f1a7
Merge pull request #5710 from ethereum/moveTests
...
[REF][cmdlinetests] Move functions to the top
2019-01-07 14:47:53 +01:00
chriseth
b06e84501b
Merge pull request #5711 from ethereum/printCommandOnError
...
[cmdline tests] Print command on error.
2019-01-07 14:37:32 +01:00
chriseth
ff7bc85478
Merge pull request #5741 from ethereum/fix-5730-SourceLocation
...
Fixes SourceLocation extraction on multiline locations with a too long first line
2019-01-07 14:37:07 +01:00
chriseth
2e9c70add0
Use rematerializer if variable is unreferenced or value is "cheap".
2019-01-07 14:03:32 +01:00
Christian Parpart
9e61dbad07
Adds new test for SourceReferenceExtractor to extract multiline location with a too long first line.
2019-01-07 11:56:43 +01:00
androlo
88c7975ca5
Move functions to the top.
2018-12-21 00:46:31 +01:00
chriseth
09feb9cf52
Print command.
2018-12-20 12:56:18 +01:00
androlo
4487567629
Only select directories to skip the README.
2018-12-20 12:19:14 +01:00
chriseth
8690898ac1
Formatting.
2018-12-20 12:19:14 +01:00
chriseth
ae08d7c375
Merge pull request #5681 from ethereum/limitOutput
...
Do not compile unless requested.
2018-12-19 17:02:28 +01:00
chriseth
4c7151e57f
Do not include empty JSON objects in output.
2018-12-19 14:59:29 +01:00
chriseth
1bf396af78
Tests.
2018-12-19 12:58:17 +01:00
Christian Parpart
62fe57479e
make use of C++ = default
constructor declarations as well as more non-static member initialization syntax.
2018-12-19 11:26:42 +01:00
Christian Parpart
d10bae245e
liblangutil: SourceLocation to default initialize data members (w/o the use of ctor)
...
See: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#c45-dont-define-a-default-constructor-that-only-initializes-data-members-use-in-class-member-initializers-instead
2018-12-19 11:21:45 +01:00
chriseth
20189c3f3b
Merge pull request #5637 from ethereum/better-json-error-reporting
...
Json: Provide better error message when 'settings' is not an object
2018-12-18 19:39:46 +01:00
Mathias Baumann
c43d96f2bf
Json: Provide better error messages for wrong types
2018-12-18 18:36:50 +01:00
Alex Beregszaszi
bd2f2ecbbd
Move unsatisfied_version test from SolidityNameAndTypeResolution to SolidityParser
2018-12-18 15:02:59 +00:00
Alex Beregszaszi
ba15bc0a23
Fail if parsing failed in AnalysisFramework
...
Otherwise Compilerstack::analyze will throw an exception.
2018-12-18 15:02:37 +00:00
Alex Beregszaszi
c2ec6d71b4
Add version pragma parsing to Parser
2018-12-18 15:02:35 +00:00
Mathias Baumann
1b8570f829
Only generate sort/search code when interface functions exist
2018-12-17 21:24:37 +01:00
chriseth
332f914e4e
Merge pull request #5388 from ethereum/smt_mapping
...
[SMTChecker] Support for mapping
2018-12-17 14:09:52 +01:00
chriseth
bf7d71d6b3
Merge pull request #5613 from ethereum/yulStringLiterals
...
[Yul] Use C++ user-defined literals for creating YulString constants.
2018-12-17 14:07:24 +01:00
chriseth
2f11a677de
Add gnosis safe as external test.
2018-12-14 23:48:04 +01:00
Leonardo Alt
9199718ec0
Clear all mapping knowledge after array variable assignment
2018-12-14 12:21:53 +01:00
Leonardo Alt
6a2809a582
[SMTChecker] Support to mapping
2018-12-14 12:21:53 +01:00
chriseth
bc22a25a60
Remove VarDeclPropagator.
2018-12-13 16:51:10 +01:00
chriseth
6c6a53a439
Do not create unassigned variables.
2018-12-13 16:51:10 +01:00
chriseth
11209ec48a
Add variable declaration initializer.
2018-12-13 16:49:04 +01:00
chriseth
b11d413720
Consider return variables to be zero initially.
2018-12-13 16:02:30 +01:00
chriseth
1d274a8924
Merge pull request #5644 from ethereum/noInlineIntoLarge
...
[Yul] Do not inline into already big functions.
2018-12-13 15:57:49 +01:00
chriseth
ef95a1ab53
Merge pull request #5651 from ethereum/cmdlineJsonTests
...
Remove pre-release warning from standard json cmdline tests.
2018-12-13 15:28:40 +01:00
Daniel Kirchner
d5a50d8aee
Remove pre-release warning from standard json cmdline tests.
2018-12-13 14:42:29 +01:00
chriseth
60a368244a
Do not inline into already big functions.
2018-12-13 12:12:54 +01:00
chriseth
642c69f935
Merge pull request #5641 from ethereum/supportUnassigned
...
[Yul] Support unassigned variables in the SSA value tracker and the data flow analyzer.
2018-12-13 11:33:45 +01:00
chriseth
6e205cc4e3
Merge pull request #5624 from ethereum/standard_json_unknown_keys
...
Disallow unknown JSON keys in standard-json
2018-12-13 09:58:34 +01:00
Daniel Kirchner
5ac7620045
Use C++ user-defined literals for creating YulString constants.
2018-12-12 18:45:43 +01:00
chriseth
17bf164afe
Merge pull request #4951 from ethereum/alethUpdates
...
Use current aleth release for testing.
2018-12-12 18:41:35 +01:00
chriseth
9557dd7e74
Support unassigned variables in the SSA value tracker and the data flow analyzer.
2018-12-12 18:06:28 +01:00
Leonardo Alt
8cd2ac8462
Disallow unknown JSON keys in standard-json
2018-12-12 17:32:42 +01:00
Daniel Kirchner
123d33ad41
Add tolerance to gas meter tests.
2018-12-12 17:24:56 +01:00
chriseth
87237281bf
Merge pull request #5630 from ethereum/warn_functions_empty_body
...
Supress unused var and state mut warnings for functions with empty body
2018-12-12 17:00:50 +01:00
Leonardo Alt
508aae8a67
Disable state mutability warning for functions with empty body
2018-12-12 14:43:44 +01:00
Leonardo Alt
53537864a2
Disable unused var warning for functions with empty body
2018-12-12 14:43:44 +01:00
Daniel Kirchner
788612d2ef
Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.
2018-12-12 04:20:53 +01:00
chriseth
fb3a0ac1c7
Codegen for object access.
2018-12-11 19:24:44 +01:00
chriseth
9f86ede32d
Merge pull request #5454 from ethereum/smt_math_functions
...
[SMTChecker] Abstract math functions
2018-12-11 18:35:10 +01:00
chriseth
b5deca0383
Merge pull request #4779 from ethereum/optimise-string-literals
...
Decide better in storing string literals as data
2018-12-11 17:50:14 +01:00
Leonardo Alt
08737e43dc
[SMTChecker] Use SymbolicFunctionVariable for uninterpreted functions
2018-12-11 11:28:25 +01:00
Daniel Kirchner
6d82ad1338
Test updates for recent versions of aleth.
2018-12-11 04:47:05 +01:00
chriseth
d80d324de7
Tests for gas costs.
2018-12-10 18:06:07 +01:00
Yi Huang
81f703427e
Add tests for implcit conversions from literals to fixed-point numbers.
2018-12-10 17:31:20 +01:00
Mathias Baumann
55d7d327c4
Have only one source where testsuits are defined
2018-12-10 16:49:33 +01:00
chriseth
b05d33d771
Tests for stack reusing code generator.
2018-12-10 14:28:56 +01:00
Erik Kundt
e2395a3dcf
Adds more detailed type errors and tests.
2018-12-07 12:35:35 +01:00
Erik Kundt
b2afb8cdda
Adds an additional message to failing type conversions.
2018-12-07 11:55:53 +01:00
chriseth
6a9e8a6fe3
Merge pull request #4936 from ethereum/binSelect
...
Binary search for dispatch.
2018-12-07 00:55:09 +01:00
Daniel Kirchner
1eb60cbb39
Add structural simplifier as optimization step for Yul.
2018-12-06 18:37:35 +01:00
chriseth
b7cfa499b0
Add tests.
2018-12-06 14:43:14 +01:00
chriseth
0e8841005c
Merge pull request #5554 from ethereum/cp-SourceReferenceFormatter-refactor
...
[2/3] Refactor SourceReferenceFormatter (split-out data extraction & make use of new SourceLocation knowledge)
2018-12-06 14:01:39 +01:00
Christian Parpart
073b03d90c
liblangutil: refactor SourceReferenceFormatter, splitting out retrieval and making use of new SourceLocation's CharStream knowledge
2018-12-06 14:01:01 +01:00
chriseth
6124176374
Gas tests for the binary search dispatch routine.
2018-12-06 13:07:14 +01:00
chriseth
d67b232343
Extend capabilities of the generic commandline test.
2018-12-06 12:38:24 +01:00
chriseth
5fde279d2a
Merge pull request #5514 from corollari/develop
...
Remove unary + from the type system
2018-12-06 10:27:09 +01:00
Albert
eee2f2b069
Update test
2018-12-06 01:54:04 +01:00
Albert
df08d79623
Fix #5470
...
Remove unary + from the type system
2018-12-06 01:54:04 +01:00
chriseth
bc6ddbdd09
Remove w
parameter for toHex.
2018-12-05 22:51:49 +01:00
Kevin Kelley
fb6fd1b3c2
add a 'readable' format for large hex values
2018-12-05 22:15:02 +01:00
Mathias Baumann
f4e9c70ecc
Tests for SSAValueTracker ignoring function call on rhs
2018-12-05 18:01:41 +01:00
chriseth
32c9da9419
Merge pull request #5593 from ethereum/issue-5384
...
Fix expression simplifier asserting on default values
2018-12-05 17:58:23 +01:00
chriseth
dd6327594f
Merge pull request #5592 from ethereum/fix-issue-5446
...
Relax assertion about jumps in loose mode
2018-12-05 11:43:31 +01:00
Mathias Baumann
5d31ad2daf
Test for unhandled default values in expression simplifier
2018-12-05 11:43:02 +01:00
Mathias Baumann
6e5160efa0
Relax assertion about jumps in loose mode
2018-12-05 10:25:59 +01:00
chriseth
6efe2a5266
Merge pull request #5390 from ethereum/smt_one_loop
...
[SMTChecker] Unroll loops once
2018-12-05 09:23:19 +01:00
chriseth
852297fa2f
Builtin functions for yul analysis.
2018-12-04 14:50:00 +01:00
chriseth
c3fc2da763
Tests for parser for builtins.
2018-12-04 14:49:16 +01:00
chriseth
961026347d
Use dialect option in yul parser tests.
2018-12-04 14:49:16 +01:00
chriseth
8654f8f6d4
Merge pull request #5573 from ethereum/builtins
...
[Yul] Introduce the concept of builtin functions.
2018-12-04 14:11:49 +01:00
Daniel Kirchner
1b8a013d4a
Properly recurse in ForLoopInitRewriter
2018-12-04 13:36:25 +01:00
Leonardo Alt
8069bb61da
[SMTChecker] Loops are unrolled once
2018-12-04 12:35:19 +01:00
chriseth
99db4e3ff4
Introduce the concept of builtin functions.
2018-12-04 12:06:33 +01:00
chriseth
7698b0b63f
Do not stop if there is more than one error.
2018-12-04 11:37:03 +01:00
chriseth
d829794737
Improve yul error messages around number of arguments and variables.
2018-12-04 11:37:03 +01:00
Anurag Dashputre
82f5763e7a
Fix internal compiler error for unimplemented base contract function.
2018-12-03 12:25:31 +01:00
chriseth
4b98946e5a
Merge pull request #5341 from ethereum/optimizeAssemblyCommandline
...
Apply the optimize commandline parameter to assembly mode.
2018-12-03 11:52:48 +01:00
chriseth
3f613a44ec
Merge pull request #5557 from ethereum/fixInterfaceImplementedByPublicStateVariable
...
Public state variables are implementing external functions.
2018-12-03 10:46:44 +01:00
chriseth
0668a9ecfb
Public state variables are implementing external functions.
2018-12-03 10:46:03 +01:00
chriseth
aaeb74f592
Merge pull request #5537 from ethereum/cp-SourceLocation-related-refactoring
...
[1/3] SourceLocation related refactoring.
2018-11-30 23:45:31 +01:00
Erik Kundt
1cdcdcee65
Improves assembly output commandline tests.
2018-11-30 23:39:05 +01:00
Erik Kundt
0d1b9c3b1b
Adds tests for --optimize in assembly mode.
2018-11-30 23:39:05 +01:00
Christian Parpart
757623e381
liblangutil: SourceLocation: Retricts == and != operator
2018-11-30 17:34:54 +01:00
Christian Parpart
435f7b3b72
liblangutil: Scanner: remove superfluous sourceName field (it's in CharStream already)
...
Also, ParserBase::sourceName() was dead code. Eliminating it should
increase test coverage (how sneaky) :-)
2018-11-30 17:07:17 +01:00
Christian Parpart
c48a5264be
liblangutil: SourceLocation: adds (shared) pointer to underlying CharStream source, eliminating sourceName
...
Also, adapted affecting code to those changes.
2018-11-30 17:07:12 +01:00
chriseth
621ce3df20
Test.
2018-11-30 16:30:19 +01:00
chriseth
6aa9ce2d43
Merge pull request #5550 from ethereum/moveSomeTests
...
Move inline array tests.
2018-11-30 09:26:31 +01:00
chriseth
d6d41b2bc7
Merge pull request #5548 from ethereum/fixMemberAccess
...
Fix bug related to state variables of function type accessed via base contract.
2018-11-30 09:26:08 +01:00
chriseth
f46dd91c20
Move inline array tests.
2018-11-29 19:49:38 +01:00
chriseth
c445e7dfa4
Disallow inline arrays of mapping type.
2018-11-29 19:45:06 +01:00
chriseth
73a64da041
Fix bug related to state variables of function type accessed via base contract.
2018-11-29 19:30:27 +01:00
Leonardo Alt
67bbcefe6c
Report deprecation error on functions sha3 and suicide also without call.
2018-11-29 14:29:13 +01:00
Christian Parpart
22eff22492
liblangutil: extends CharStream to know about the respective (file-)name (and adapt codebase to it)
2018-11-29 12:45:27 +01:00
Leonardo Alt
1d47919c0c
Fix ICE when function type struct parameter has field of non-existent type
2018-11-29 10:38:47 +01:00
chriseth
b4086ac870
Merge pull request #5526 from ethereum/fixGetterNewCoder
...
Fix: Disallow structs in getters for old encoder.
2018-11-28 17:05:52 +01:00
Leonardo Alt
c51e6a545a
Remove boost test checks from SMTCheckerJSONTest
2018-11-28 14:16:43 +01:00
chriseth
c54814b47b
Tests.
2018-11-28 14:11:51 +01:00
chriseth
105898b81b
Tests.
2018-11-27 15:59:57 +01:00
chriseth
728119bb11
Use yul parser in assembly stack.
2018-11-27 15:59:57 +01:00
chriseth
240ad0e34e
Merge pull request #5382 from ethereum/libraryMappingPublic
...
Allow mapping arguments for public and external library functions.
2018-11-26 19:47:32 +01:00
chriseth
1e7a23a205
Changelog entry and tests.
2018-11-26 16:51:45 +01:00
Daniel Kirchner
30e6f8d3fb
Allow mapping arguments for public and external library functions.
2018-11-26 16:31:46 +01:00
Daniel Kirchner
597174119a
Tests.
2018-11-26 14:30:32 +01:00
chriseth
7921e5f0b9
Merge pull request #5486 from ethereum/allowExternalPublicOverride
...
Allow external public override
2018-11-26 14:26:55 +01:00
chriseth
9ac7c748f8
Merge pull request #5494 from ethereum/scanner-error-handling
...
Improved Scanner error diagnostics.
2018-11-26 14:17:08 +01:00
chriseth
0b474d5299
Merge pull request #5497 from ethereum/langutil-SourceReferenceFormatter
...
Moving SourceReferenceFormatter into langutil namespace.
2018-11-26 12:44:25 +01:00
chriseth
ac5803bf3e
Changelog entry and tests.
2018-11-26 12:41:26 +01:00
Lazaridis
56d5dd4668
decouple TestCase class from test/libsolidity
2018-11-25 02:34:59 +02:00
Christian Parpart
0ad56bca79
Adapting tests to Scanner's lexical error diagnostics change.
2018-11-24 12:59:37 +01:00
Christian Parpart
aeb66905de
Moving SourceReferenceFormatter into langutil namespace.
2018-11-24 12:33:36 +01:00
Lazaridis
e454737a3c
adapt to latest code changes
2018-11-23 17:27:52 +01:00
chriseth
9a94e503da
Merge pull request #5491 from ethereum/libyul-as-library
...
Libyul as static library (version 3 ;( )
2018-11-23 17:01:18 +01:00
Christian Parpart
ec47c8946b
Isolating libyul library API into its own namespace yul
.
2018-11-23 14:29:00 +01:00
Christian Parpart
3734f40d31
CMake: Isolate libyul into its own static library
2018-11-23 12:37:37 +01:00
Christian Parpart
713d94476e
Reorder some include files and group <libyul/>'s together (as much as possible)
2018-11-23 12:37:19 +01:00
Leonardo Alt
0ff4cbe51b
Add SMTChecker tests for standard JSON
2018-11-23 10:51:06 +00:00
Christian Parpart
0f4ed52a71
Rewrite header paths to adapt to recent git mv
of libsolidity/inlineasm to libyul
2018-11-23 11:18:57 +01:00
chriseth
ecd059cb92
Merge pull request #5451 from ethereum/bound_function_tests
...
Add assert and tests for bound functions
2018-11-22 18:23:46 +01:00
Leonardo Alt
06189ae57f
Add assert and tests for bound functions
2018-11-22 14:41:39 +01:00
Leonardo Alt
32fe4768a9
Organize smt tests in subdirectories
2018-11-22 13:33:28 +00:00
Leonardo Alt
4a71080ae5
Remove pragma ABIEncoderV2 from smt test
2018-11-22 13:33:28 +00:00
Alex Beregszaszi
109cfcef69
Drop numbering in front of the SMTChecker tests
2018-11-22 13:33:28 +00:00
Alex Beregszaszi
636da48e82
Move most of SMTChecker tests from C++ to isoltest
...
But keep divison in C++ because results differ between different solvers
2018-11-22 13:33:24 +00:00
chriseth
b5acc63008
Merge pull request #5427 from ethereum/liblangutil
...
Factor out langutil, a new static library that is shared between libyul/libsolidity
2018-11-22 00:31:01 +01:00
Alex Beregszaszi
7a26ede827
Fix constructor in AuctionRegistrar
2018-11-21 19:21:14 +00:00
Christian Parpart
d67322a186
Introduce namespace langutil
in liblangutil directory.
...
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart
87821c53c3
Isolating files shared between Yul- and Solidity language frontend.
2018-11-21 18:58:12 +00:00
Alex Beregszaszi
7c051f1e32
LLL: implement WITH keyword
2018-11-21 15:50:45 +00:00
Alex Beregszaszi
c9ee30294c
Merge pull request #5444 from Mordax/issue-5168-rmvirtual
...
Removing redundant virtual from override function declaration
2018-11-21 15:16:08 +00:00
chriseth
8e98885c53
Merge pull request #5355 from ethereum/yul-forloop-pre-rewrite
...
[Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block
2018-11-21 16:10:52 +01:00
mordax
ea8b7d803e
Removing redundant virtual from override function declaration
...
Remove trailing whitespace
Remove changelog change
2018-11-21 14:37:32 +00:00
Leonardo Alt
06c3f0953a
[SMTChecker] Support bound function calls
2018-11-19 15:29:00 +01:00
Christian Parpart
f705a45d43
[Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block.
2018-11-16 13:15:41 +01:00
Leonardo Alt
70bb0eaf95
[SMTChecker] Implement uninterpreted functions and use it for blockhash()
2018-11-15 09:12:42 +01:00
chriseth
727e3f24bc
Do not perform cleanup on unsigned integers when loading from calldata.
2018-11-14 20:52:30 +00:00
chriseth
17e81c6eca
Merge pull request #5410 from ethereum/lll-build
...
Do not build LLL unless requested via the LLL cmake option
2018-11-14 11:11:41 +01:00
Alex Beregszaszi
00cb5dbd43
Move LLL tests into a single directory
2018-11-13 23:51:17 +00:00
Alex Beregszaszi
6961899cb2
Do not build tests for LLL if disabled
2018-11-13 23:51:17 +00:00
chriseth
80fcd1aeb6
Fix commandline tests.
2018-11-14 00:41:34 +01:00
chriseth
28d98d61ef
Use latest solcjs and replace compileStandard by compile.
2018-11-13 13:54:01 +00:00
Alex Beregszaszi
b6c3257752
Remove old libsolc API (compileJSON, compileJSONMulti, compileJSONCallback)
2018-11-13 13:54:01 +00:00
Alex Beregszaszi
90e4d24407
LLL: ensure assembly tests have the correct arguments
2018-11-13 13:47:29 +01:00
Alex Beregszaszi
a4d2e17a04
LLL: add test which has a sub assembly without a forced STOP
2018-11-13 13:47:29 +01:00
Alex Beregszaszi
d2e65a3ac4
LLL bytecode is padded by STOP in tests
2018-11-13 13:47:29 +01:00
Alex Beregszaszi
280255e64d
LLL: do not wrap opcode tests into sequence
2018-11-13 13:47:29 +01:00
chriseth
2e025cf917
Update tests.
2018-11-13 13:33:33 +01:00
chriseth
7e0041cf22
Merge pull request #5406 from ethereum/uninitializedStorageUnimplemented
...
Ignore unimplemented functions for detecting uninitialized storage returns.
2018-11-13 13:22:59 +01:00
Daniel Kirchner
b5e9d849ef
Ignore unimplemented functions for storage returns.
2018-11-13 12:18:22 +01:00
chriseth
9c6048b0b8
Merge pull request #5333 from ethereum/joinPerformance
...
[Yul] Use map join algorithm for performance.
2018-11-13 12:15:11 +01:00
Daniel Kirchner
74557ceb0e
Deterministic YulStringRepository using string hashes.
2018-11-12 23:43:16 +01:00
chriseth
b1454433b2
Remove variables that go out of scope from data structure.
2018-11-12 23:00:37 +01:00
chriseth
faa7b61d76
Use map join algorithm for performance.
2018-11-12 23:00:37 +01:00
chriseth
af65bac737
Remove trailing whitespace.
2018-11-12 09:15:22 +01:00
Kristofer Peterson
f927da9182
Refactor of bool TypeChecker::visit(FunctionCall const& _functionCall).
...
Visit method now cleanly determines if node represents a function call,
struct construction or type conversion. Type checking, validation and
error message logic is moved to separate methods.
2018-11-09 16:35:54 +00:00
chriseth
9709dfe046
Merge pull request #5128 from ethereum/breakUnbreak
...
[Yul] Test case that shows that break / unbreak are more or less inverse
2018-11-09 16:07:20 +01:00
chriseth
0f2ba3522f
Reset yul string repository.
2018-11-09 15:40:36 +01:00
chriseth
6bbedab383
Merge pull request #5265 from ethereum/cleanupsha3
...
Simplify sha3.
2018-11-09 15:39:57 +01:00
chriseth
5ea514213a
Test case that shows that break/unbreak are more or less inverse.
2018-11-09 15:36:52 +01:00
chriseth
fa44d20721
Remove side-effect-free statements.
2018-11-08 18:14:36 +01:00
chriseth
cd11f7cfac
Merge pull request #5325 from ethereum/fixDataFlow
...
[Yul] Fix data flow analyzer for function definitions.
2018-11-08 12:52:51 +01:00
chriseth
b801e61611
Merge pull request #5365 from ethereum/improveNameDispenser
...
[Yul] Use single counter for name dispenser for performance reasons.
2018-11-08 12:24:21 +01:00
chriseth
bf5b36a1ed
Merge pull request #5366 from ethereum/addVarDecl
...
[Yul] Add VarDeclPropagator to full suite and interactive optimizer.
2018-11-08 12:21:45 +01:00
chriseth
84e8a782d6
Merge pull request #5351 from ethereum/functionTypeConversion
...
Relax type equality requirement of function types during conversion in code generation.
2018-11-08 11:29:55 +01:00
chriseth
cc2de07bc6
Merge pull request #5348 from ethereum/boostRationalNegativeDenominatorFix
...
Fix negative denominator in ``boost::rational`` during exponentiation.
2018-11-08 11:25:30 +01:00
Daniel Kirchner
b16a3644fe
Function type conversion test cases.
2018-11-08 10:51:51 +01:00
chriseth
37766ee8e4
Add VarDeclPropagator to full suite and interactive optimizer.
2018-11-07 23:19:42 +01:00
chriseth
845899e305
Use single counter for name dispenser for performance reasons.
2018-11-07 23:09:33 +01:00
chriseth
b2b11eaa00
Fix data flow analyzer for function definitions.
2018-11-07 20:32:55 +01:00
chriseth
bed0368ffa
Merge pull request #5327 from ethereum/rematerializerSmall
...
Add rematerializer to interactive optimizer.
2018-11-07 20:30:31 +01:00
chriseth
674e17c2a8
Performance: Replace string by special single-copy YulString class.
2018-11-07 19:30:27 +01:00
Christian Parpart
ab0de38f16
Eliminate byte
-typedef and use uint8_t
in all their places instead.
...
This change is made to (easily) be forward compatible with future C++
standards, in order to allow compiling the code with newer standards at
some point in the future.
* Removed the `using byte = uint8_t;` line from Common.h
* Mechanically change all uses of `byte` to `uint8_t`.
Tested with GCC 7.3 in C++11/14/17 modes :-)
2018-11-07 12:17:57 +01:00
Daniel Kirchner
e036133d1b
Fix negative denominator in `boost::rational
` during exponentiation.
2018-11-06 10:52:10 +01:00
Daniel Kirchner
36903d7e27
Remove uses of boost::rational with negative denominator, which breaks with boost 1.68.
2018-11-05 21:36:52 +01:00
Erik Kundt
1d8e9af407
Fixes crash while encoding too large arrays.
2018-10-30 15:14:57 +01:00
chriseth
0e9127a7c8
Add rematerializer to interactive optimizer.
2018-10-28 13:27:21 +01:00
Christian Parpart
f08ab77249
Yul: Implements empty-var-decl-propagation
2018-10-26 13:13:57 +02:00
chriseth
3473326fc4
Merge pull request #5273 from ethereum/interactiveOpt
...
[Yul] Interactive optimizer tool
2018-10-25 13:55:08 +02:00
chriseth
c36a3bd683
Merge pull request #5283 from ethereum/smt_fixed_bytes
...
[SMTChecker] Support FixedBytes
2018-10-25 13:01:01 +02:00
chriseth
f714b0dd7c
Merge pull request #5242 from ethereum/someChecks
...
Some well-formedness checks for the Yul AST.
2018-10-25 12:44:28 +02:00
chriseth
4076875927
Merge pull request #5271 from ethereum/fullSuite
...
[Yul] Full suite tests.
2018-10-25 12:44:10 +02:00
chriseth
d335539891
Merge pull request #5296 from ethereum/setPragmaToArbitrary
...
Set pragma to arbitrary
2018-10-25 12:42:15 +02:00
Leonardo Alt
d8cbf321da
Grouping of symbolic variables in the same file and support to FixedBytes
2018-10-25 09:30:48 +02:00
chriseth
60f1d52f59
Full suite tests.
2018-10-24 18:02:08 +02:00
chriseth
f92623063d
Add redundant assign and ssa.
2018-10-24 17:54:35 +02:00
chriseth
57843f790c
Interactive optimizer tool.
2018-10-24 17:52:28 +02:00
chriseth
1424beda79
Remove pragma changer.
2018-10-24 14:52:55 +02:00
chriseth
9e6356a763
Set pragma to arbitrary.
2018-10-24 14:52:55 +02:00
chriseth
eded236e67
Only run zeppelin as external tests.
2018-10-24 14:52:55 +02:00
chriseth
01566c2e1a
Merge pull request #5272 from ethereum/smt_special_vars
...
[SMTChecker] Support msg.*, tx.*, block.*, gasleft and blockhash
2018-10-24 14:34:17 +02:00
chriseth
a9a414bd0f
Added some tests.
2018-10-24 14:29:33 +02:00
chriseth
b3911798b3
Redundant assign eliminator.
2018-10-24 13:24:25 +02:00
Leonardo Alt
e2cf5f6ed9
Add gasleft constraint and use full member access name
2018-10-22 18:19:11 +02:00
Christian Parpart
f112377dd4
Refactor solidity::Token
into an enum class
with TokenTraits
helper namespace
2018-10-22 17:00:51 +02:00
Leonardo Alt
b46b827c30
[SMTChecker] Support msg.*, tx.*, block.*, gasleft and blockhash
2018-10-19 15:52:16 +02:00
chriseth
c13b5280c1
Merge pull request #5256 from ethereum/lvalueCleanup
...
Lvalue cleanup
2018-10-19 11:20:12 +02:00
chriseth
c676b009e1
Merge pull request #5267 from ethereum/ssatransform
...
SSA transform - first step.
2018-10-19 11:10:08 +02:00
chriseth
5c274a9251
Merge pull request #5260 from ethereum/flattenMore
...
Flatten more.
2018-10-19 11:08:46 +02:00
chriseth
0ebe572f7d
Merge pull request #5258 from ethereum/coverage2
...
Add some simplification tests for operations.
2018-10-19 11:04:56 +02:00
chriseth
4987c12ac3
Merge pull request #5213 from Mordax/issue-5103
...
Tests for flipping signs on signed type edge case
2018-10-18 19:02:35 +02:00
chriseth
7dffb0f3ee
Merge pull request #5270 from ethereum/inlineFlexible
...
Make full inliner more flexible.
2018-10-18 19:02:04 +02:00
chriseth
465845b7a7
SSA transform - first step.
2018-10-18 18:56:22 +02:00
chriseth
b2725aa913
Make full inliner more flexible.
2018-10-18 14:57:09 +02:00
chriseth
48749146da
Fix a bug in CSE where a variable that was already out of scope was used.
2018-10-18 14:55:51 +02:00
chriseth
c34fa43d5b
Test case that shows a CSE bug related to scopes.
2018-10-18 14:54:23 +02:00
chriseth
e78b95d9d4
Renamed SHA3.{h,cpp} files.
2018-10-18 14:31:36 +02:00
chriseth
e8a2d57075
Flatten more.
2018-10-18 00:58:15 +02:00
chriseth
bda154440c
Add some simplification tests for operations.
2018-10-18 00:10:39 +02:00
chriseth
7609e2871e
Merge pull request #5240 from ethereum/limitDispenserSize
...
[Yul] Limit name length created by dispenser
2018-10-17 22:54:38 +02:00
chriseth
56425bb2b1
Add a test for delete x.length
2018-10-17 22:07:05 +02:00
chriseth
c6a6e9ac5d
Merge pull request #5232 from ethereum/inlineHeuristic
...
[Yul] Add simple inlining heuristic
2018-10-17 17:22:46 +02:00
chriseth
732d09cef1
Limit size of generated names and add convenience constructors.
2018-10-17 17:21:55 +02:00
chriseth
16c2a775fd
Handle externally supplied variables correctly in disambiguator.
2018-10-17 14:12:11 +02:00
chriseth
9fb5feed05
Use metrics in the full inliner.
2018-10-17 14:11:20 +02:00
chriseth
2ab6430303
Inline each function separately.
2018-10-16 17:32:21 +02:00
chriseth
a435a14e13
Test for crash via inlining.
2018-10-16 17:29:20 +02:00
chriseth
e2e4a9fe81
New full inliner.
2018-10-16 17:16:03 +02:00
chriseth
ffe44536fe
Add a "full simplify" test that applies multiple elementary transforms.
2018-10-16 16:18:39 +02:00
chriseth
a320eec7d3
New simplifier via broken expressions.
2018-10-16 16:18:39 +02:00
chriseth
b723893ac7
Merge pull request #5225 from mestorlx/issue5007
...
Prevent crash in case there are no contracts
2018-10-16 14:25:58 +02:00
mordax
134f5cb798
Added test for flipping signs on signed type edge case
2018-10-15 16:08:43 -04:00
chriseth
036929aba1
Merge pull request #5226 from ethereum/chriseth-patch-3
...
Correct include path
2018-10-15 19:51:25 +02:00
chriseth
8677d9276a
Merge pull request #5222 from ethereum/yul-block-flattener
...
[WIP] Yul: Introduces a block flattening pass
2018-10-15 19:50:10 +02:00
mestorlx
9f9d6fdcc4
fix issue##5007
2018-10-15 14:26:15 -03:00
Christian Parpart
04612936c2
Yul: Introduces a block flattening pass + tests
2018-10-15 18:21:34 +02:00
chriseth
3d4e5f30e1
Correct include path
2018-10-15 18:08:41 +02:00
Bhargava Shastry
55d91d5f9c
Bug fix: Add missing include in test/Options.h; otherwise compiler does not recognise the boost object that Options subclasses
2018-10-15 17:14:22 +02:00
Leonardo Alt
e4851cf59e
[SMTChecker] Inline calls to internal functions
2018-10-15 15:11:21 +02:00
chriseth
6202628cfe
Merge pull request #5221 from ethereum/splitRenamingLeftovers
...
Some renaming leftovers.
2018-10-15 14:22:17 +02:00
chriseth
0778fb2dfc
Merge pull request #5208 from mestorlx/bug4156
...
[WIP] Bad identifier suggestion in certain cases
2018-10-15 13:03:49 +02:00
chriseth
0664772ece
Some renaming leftovers.
2018-10-15 12:51:50 +02:00
Christian Parpart
1304361b9c
Renaming namespace dev::julia to dev::yul.
2018-10-15 11:58:51 +02:00
Christian Parpart
9a4bec7e47
Renaming libjulia to libyul
2018-10-15 11:52:35 +02:00
chriseth
656adcaeb7
Merge pull request #5149 from ethereum/fix_assertion_on_inval_tuple_call
...
Fixes invalid function calls to literals inside tuple assignment's LHS.
2018-10-15 11:24:47 +02:00
Christian Parpart
6d815a142f
Fixes invalid function calls to literals inside tuple assignment's LHS.
2018-10-15 10:35:11 +02:00
mestorlx
1ce9566e50
Updated MAXIMUM_STRING_DISTANCE to non static maximumStringDistance taking into account length of the identifier
2018-10-13 09:54:07 -03:00
chriseth
7940dafd0d
Also substitute variables in CSE.
2018-10-12 17:11:13 +02:00
chriseth
26dc876c28
Merge pull request #5127 from ethereum/exprUnbreaker
...
[Yul] Expression joiner.
2018-10-12 17:10:44 +02:00
chriseth
93cf718367
Merge pull request #5206 from ethereum/splitConstantsToo
...
[Yul] Split constants too
2018-10-12 17:01:54 +02:00
chriseth
94526b2d92
Merge pull request #5145 from ethereum/hashLinker
...
Hash linker
2018-10-12 15:53:45 +02:00
chriseth
1e06422589
Also split constants.
2018-10-12 15:20:06 +02:00
chriseth
d60a2511fd
Expression joiner.
2018-10-12 15:19:29 +02:00
chriseth
26c693aa92
Change library placeholder to __$<hash>$__
.
2018-10-12 15:15:02 +02:00
chriseth
6daeb39ecc
Use hash for library placeholders.
2018-10-12 15:15:01 +02:00
chriseth
a937a449df
Move unused pruner tests.
2018-10-11 18:41:26 +02:00
chriseth
463642996a
Move expression simplifier tests.
2018-10-11 18:41:26 +02:00
chriseth
6dfd0adc0b
Move rematerialiser tests.
2018-10-11 18:41:26 +02:00
chriseth
49958e4720
Move main function tests.
2018-10-11 18:41:26 +02:00
chriseth
9cd577abe9
Move tests for full inliner.
2018-10-11 18:41:26 +02:00
chriseth
83ab8e7f78
Move expression inliner tests.
2018-10-11 18:41:26 +02:00
chriseth
7a34fc1291
Move function hoister tests.
2018-10-11 18:41:26 +02:00
chriseth
e021be4609
Move function grouper tests.
2018-10-11 18:41:26 +02:00
chriseth
424a77b48e
Move expression splitter tests.
2018-10-11 18:41:26 +02:00
chriseth
33ac415f7f
Move common subexpression eliminator tests.
2018-10-11 18:41:26 +02:00
chriseth
a53d942da5
Remove old disambiguator test.
2018-10-11 16:59:57 +02:00
chriseth
6e32a1becb
Disambiguator tests.
2018-10-11 16:59:57 +02:00
chriseth
4607118d2e
Add Yul optimizer test framework.
2018-10-11 16:59:57 +02:00
chriseth
9da62384ee
Combine test path discovery.
2018-10-11 15:01:43 +02:00
chriseth
50247dc8d1
Extract test suite runs.
2018-10-11 15:01:43 +02:00
chriseth
9081f803c7
Extract function.
2018-10-11 15:01:43 +02:00
Erik Kundt
3e24a3d81b
Adds syntax tests for array index access.
2018-10-10 23:18:32 +02:00
chriseth
2feaacba9d
Merge pull request #5195 from ethereum/unsigned-array-index
...
Do not crash on non-unsigned array index
2018-10-10 20:56:25 +02:00
Erik Kundt
763ae30023
Fixes crash on non-unsigned array index.
2018-10-10 19:49:25 +02:00
Martin Diz
ef25454a04
Improved error message for lookup in function types.
2018-10-10 11:53:53 -03:00
chriseth
dd4acda73a
Merge pull request #5186 from ethereum/renameBreaker
...
Rename ExpressionBreaker to ExpressionSplitter.
2018-10-10 16:36:55 +02:00
chriseth
f950973eb2
Rename ExpressionBreaker to ExpressionSplitter.
2018-10-10 16:23:35 +02:00
chriseth
5b5a4d0172
Merge pull request #5134 from ethereum/fuzzer-input-file
...
solfuzzer: adds --input-file=FILENAME command line argument (defaulting to stdin)
2018-10-10 16:00:58 +02:00
chriseth
4035c96a32
Merge pull request #5184 from ethereum/viewFunctionDocs
...
Library view functions
2018-10-10 15:21:40 +02:00
Erik Kundt
4beabf6686
Documents library view functions and adds unit test.
2018-10-10 12:28:24 +02:00
chriseth
06200b4b64
Merge pull request #5180 from ethereum/cpp-cleanup
...
Some C++ cleanup
2018-10-10 11:43:42 +02:00
Christian Parpart
212a6e146a
adds --input-file=FILENAME to solfuzzer
2018-10-10 11:13:03 +02:00
Alex Beregszaszi
6c3d12d85b
Do not require ctype/stdio if not needed
2018-10-09 19:06:22 +01:00
Alex Beregszaszi
9e032bff43
Use nullptr instead of NULL where appropriate
2018-10-09 18:06:39 +01:00
chriseth
f6f0cecc2f
Merge pull request #5076 from ethereum/exprBreaker
...
[Yul] Expression breaker.
2018-10-09 16:50:00 +02:00
chriseth
4d9184ef04
Expression breaker.
2018-10-09 15:48:27 +02:00
Christian Parpart
4d5216c2e0
Fixes large rational number literals being wrongly interpreted.
...
Fixes #5052 .
2018-10-09 14:36:49 +02:00
chriseth
547b26d464
Merge pull request #5124 from lazaridiscom/1802-hex-error-reporting
...
use Token type for hex error, draft re #1802
2018-10-09 14:17:11 +02:00
chriseth
7a6e23998a
Fix commandline tests for release version.
2018-10-09 13:48:25 +02:00
Lazaridis
4bcd89105c
provide general hex-literal error message, fixes #1802
...
dummy
2018-10-09 06:51:19 +03:00
chriseth
2fcbe74db0
Fix ast json test for function kind.
2018-10-08 23:07:10 +02:00
chriseth
7ff9a27979
Merge pull request #4734 from ethereum/astUpdate
...
JSON AST: replace ``isConstructor`` by ``kind`` which also supports fallbacks
2018-10-08 21:47:27 +02:00
Christian Parpart
d1e05bf647
soltest: provides sane defaults for --testpath command line option
2018-10-08 10:58:52 +02:00
chriseth
d76bfcd935
Fix typos.
2018-10-04 13:28:16 +02:00
Christian Parpart
9fb835b710
Fixes #5051 (introduced in #4684 ), effectively allowing underscores in address literals.
2018-10-02 15:37:15 +02:00
chriseth
e9f72212ee
Merge pull request #5104 from ethereum/fuzzer
...
Do not use compileJSON wrapper in the fuzzer
2018-10-01 13:20:06 +02:00
chriseth
658bef5a38
Merge pull request #5115 from mestorlx/cleancircleci
...
removed stray (B in CI test output
2018-10-01 13:18:55 +02:00
chriseth
a17d480fc2
Merge pull request #5075 from ethereum/fixInliner
...
[Yul] Fix inliner
2018-10-01 13:10:54 +02:00
chriseth
d5cd02b8ed
Fix for inlining inside conditions.
2018-10-01 13:10:10 +02:00
Alex Beregszaszi
24563dd3ce
Do not use compileJSON wrapper in the fuzzer
2018-09-29 14:58:59 +01:00
Martin Diz
25f3565340
removed stray (B in CI test output
2018-09-28 19:27:55 -03:00
Alex Beregszaszi
c4b5101b9d
Merge pull request #4676 from jwasinger/extcodehash
...
Add support for EXTCODEHASH
2018-09-28 00:04:40 +01:00
Alex Beregszaszi
384a65f660
Be more strict about values in the optimizer block in StandardJSON
2018-09-26 16:51:08 +01:00
Alex Beregszaszi
f2fa513320
Add LLL tests for EXTCODEHASH
2018-09-26 16:11:02 +01:00
Alex Beregszaszi
5d985abcab
Add test for extcodehash
2018-09-26 16:11:02 +01:00
chriseth
13cd7c3fed
Merge pull request #5061 from ethereum/fixedSizeArrayLength
...
Disallow fixed-size arrays with zero length
2018-09-26 14:55:07 +02:00
Alex Beregszaszi
8cfc6c98d6
CREATE2 is part of Constantinople now
...
Also add hasCreate2 to EVMVersion
2018-09-26 01:58:10 +01:00
Alex Beregszaszi
c9f468b717
Better regex for finding version pragmas and replace it with >=0.0
...
There is a bug which stops ^0 from working.
2018-09-25 19:03:24 +01:00
Alex Beregszaszi
321ab08102
Automatically replace version pragmas in compilation tests
2018-09-25 19:03:24 +01:00
Alex Beregszaszi
d05fdb51b0
Require 0.5.0 in contract tests
2018-09-25 19:03:24 +01:00
Alex Beregszaszi
e9b2c650ce
Turn on patch to replace version pragmas for Zeppelin
...
An also replace every single one of them with ^0
2018-09-25 19:03:24 +01:00
chriseth
ba62831143
Tests for inlining inside condition.
2018-09-25 17:16:22 +02:00
chriseth
1b8334e58b
Merge pull request #5034 from liangdzou/fix_test_format_issue
...
fix format issue for test files to enable the format checker in PR #5027
2018-09-25 10:14:44 +02:00
liangdzou
839b01f77e
fix format issue for test files
2018-09-24 21:12:24 +08:00
chriseth
cb3a837251
Merge pull request #5003 from herrBez/cleanUpdated
...
Add syntax tests to fix #4627
2018-09-24 14:43:53 +02:00
Erik Kundt
d821cbdff5
Moves length check to reference resolver.
2018-09-22 00:25:52 +02:00
Erik Kundt
ff5be17990
Disallows fixed-size multidim. arrays with zero-length.
2018-09-21 18:44:56 +02:00
Alex Beregszaszi
5dd3ee2d96
Merge pull request #5050 from ethereum/standard-json-crashes
...
Add proper error reporting when invalid settings are provided in StandardJSON
2018-09-21 15:48:05 +01:00
Alex Beregszaszi
a515173900
Add proper error reporting when invalid settings are provided in StandardJSON
2018-09-21 14:53:24 +01:00
herrBez
faa0caae08
Add syntax tests to augment the test coverage of
...
libsolidity/parsing/Scanner.cpp and libsolidity/parsing/Scanner.h
Fix #4627 and PR #5003 .
- Add multiline comment test
- Add upper case hex literal test
- Add test for unicode escapes
- Add test for strings with escaped newlines
- Add test for string escapes
- Add test for strings that do not terminate before end of file
- Add test for unterminated blocks
2018-09-20 23:02:44 +02:00
chriseth
dc9853bb6e
Merge pull request #5030 from ethereum/payableConversion
...
Make non-payable default for conversion to address.
2018-09-20 21:20:46 +02:00
chriseth
d0461c49fe
Make non-payable default for conversion to address.
2018-09-20 14:31:04 +02:00
hydai
b409faa675
Disallow uppercase X in hex number literals
2018-09-19 22:01:15 +08:00
chriseth
47b8d998d1
Merge pull request #4999 from liangdzou/fix_typo
...
fix some code format problems
2018-09-17 17:47:35 +02:00
chriseth
da90bc0224
Merge pull request #4984 from elopio/add-missing-inliner-test
...
Add a missing tests for yul inliner optimization
2018-09-17 16:32:30 +02:00
liangdzou
808c3f3df5
fix some format typos
2018-09-17 22:13:21 +08:00
Leo Arias
aae385031f
Add a missing tests for yul inliner optimization
...
When the statement has two return values, the function is not inlinable.
When the function has one statement but it is not an assignment to the
return variable, the function is not inlinable.
l
2018-09-16 06:38:08 +00:00
liangdzou
f3cbdadec7
Do not set to ref for explicit conversion and add assertion for array
...
type conversion. Also, add some test cases for #4901 and #4948 .
2018-09-14 08:42:40 +02:00
chriseth
5cf570e100
Merge pull request #4968 from ethereum/alethUpdateCompatible
...
Fix tests for newer versions of aleth.
2018-09-13 23:38:46 +02:00
Daniel Kirchner
e7daed68c1
Merge pull request #4911 from ethereum/addressPayable
...
Payable and non-payable address type.
2018-09-13 17:30:54 +02:00
Daniel Kirchner
3e55aa3fa2
Disable blockhash test for constantinople due to changes between aleth versions.
2018-09-13 17:18:42 +02:00
Daniel Kirchner
583b87bb3d
Use "pending", not "latest" during `eth_call
in
sendMessage
`.
2018-09-13 16:48:51 +02:00
Daniel Kirchner
ae35a58124
Add `stateMutability
field to JSON AST for
address
` types.
2018-09-13 15:15:49 +02:00
Daniel Kirchner
12aaca1645
Add payable and non-payable state mutability to AddressType.
2018-09-13 15:15:49 +02:00
liangdzou
558a4ac49c
give more information (at most 35 chars before and after) for too long lines
...
add tests for giving more informations for too long lines
add edge tests for giving more informations for too long lines
avoid printing out tailing white space
update test case after avoiding printing out trailing whitespace
update test case for removing the pre-release warning from reference
refactor the code to if-else flavor
rename folder to cmdlineErrorReports under test
rename folder to cmdlineErrorReports under test
ignore whitespace for reference files
avoiding to modify the file stderr_path by call sed without -i option
print ' ...' instead of ' ... ' at the end of a line
2018-09-13 09:55:54 +08:00
Daniel Kirchner
879251a78b
Update test suite to use address payable.
2018-09-12 16:21:43 +02:00
Daniel Kirchner
1ce3581a52
Accept `address payable
` during parsing.
2018-09-11 14:52:23 +02:00
Daniel Kirchner
a434896458
Restore `isConstructor
` in the legacy AST.
2018-09-11 14:47:25 +02:00
Daniel Kirchner
b6636e2570
Add new test cases.
2018-09-11 14:47:25 +02:00
Daniel Kirchner
395ab9a872
Replace `isConstructor
field in the JSON AST by a
kind
` field.
2018-09-11 14:47:25 +02:00
chriseth
9f6a12eeb5
Update bug description, add regex and tests.
2018-09-10 12:58:40 +02:00
chriseth
7118f53974
Tests.
2018-09-10 12:47:46 +02:00
chriseth
255eda2ea6
Merge pull request #4912 from ethereum/fixNewline
...
Fix bugs in comments.
2018-09-10 12:25:07 +02:00
Leonardo Alt
9927964d21
Buglist check script supports json paths
2018-09-06 18:42:21 +02:00
chriseth
6a40048aa4
Tests.
2018-09-06 16:42:59 +02:00
chriseth
0b7b8162ca
This fixes several bugs with regards to line breaks and comments:
...
- any unicode line break (line feed, vertical tab, form feed, carriage
return, NEL, LS and PS) is considered to terminate a single-line
comment. The line break itself is considered to be the next token
after the comment, leading to a parser error if it is not an
ascii character (i.e. for NEL, LS and PS).
- unterminated multiline comments are considered illegal tokens
- '/** /' is considered an unterminated multiline comment
(previously, whitespace was allowed before the last '/'
2018-09-06 16:42:59 +02:00
chriseth
522174890f
Merge pull request #4872 from bakaoh/issue4716
...
Crash when array index value is too large
2018-09-05 21:47:42 +02:00
Daniel Kirchner
87804b6419
Split IntegerType into IntegerType and AddressType.
2018-09-05 12:19:14 +02:00
chriseth
a996ea266c
Merge pull request #4590 from ethereum/msgValueModifier
...
Warn if modifier uses msg.value in non-payable function
2018-09-05 10:32:10 +02:00
bakaoh
a7ffff6a29
Fix #4716 : Crash when array index value is too large
2018-09-05 10:54:38 +07:00
chriseth
e6aa15bae1
Merge pull request #4895 from ethereum/abidecodesingle
...
Fix abi.decode returning single value.
2018-09-04 23:47:56 +02:00
chriseth
85debe77d9
Merge pull request #4866 from bakaoh/issue4743
...
Fix#4743: Incorrect source location for nameless parameters
2018-09-04 20:21:03 +02:00
chriseth
3c804fd576
Merge pull request #4880 from ethereum/fix_cmdlineTest_tmpdir
...
Rename TMPDIR to SOLTMPDIR in cmdlineTests
2018-09-04 20:08:25 +02:00
chriseth
624dbbe142
Fix abi.decode returning single value.
2018-09-04 18:19:00 +02:00
chriseth
9daac90cf7
Merge pull request #4888 from ethereum/disallow_single_statement_vardecl_if_while_for
...
Disallow single statement var decl in if/while/for without blocks
2018-09-04 17:24:06 +02:00
Daniel Kirchner
e3097b30da
Add another end-to-end test.
2018-09-04 15:34:21 +02:00
Daniel Kirchner
0011f8aef9
Update compilation tests.
2018-09-04 13:31:10 +02:00
Daniel Kirchner
82f512a7d4
Add return data to bare calls.
2018-09-04 13:31:10 +02:00
Leonardo Alt
17176871ab
Changed error message and added tests
2018-09-04 11:48:58 +02:00
Daniel Kirchner
a102f3b783
Remove trailing whitespace for all files in the repository.
2018-09-04 11:30:30 +02:00
Leonardo Alt
b7c6e53d3d
Fix endToEnd test
2018-09-03 18:35:57 +02:00
chriseth
431c2fbcf3
Turn warning into error.
2018-09-03 18:35:57 +02:00
Erik Kundt
75a92b0ffd
Warns if modifier uses msg.value in non-payable function.
2018-09-03 18:35:57 +02:00
Leonardo Alt
f167baed83
mktemp might use variable TMPDIR. Renaming it in our script to avoid conflicts.
2018-09-03 12:54:29 +02:00
bakaoh
3d7b0d691f
Update test to correct source location for nameless parameters
2018-08-31 09:54:11 +07:00
Leonardo Alt
583e7156ba
Dynamic type as mapping key returns error instead of assertion fail
2018-08-16 11:59:41 +02:00
chriseth
cc6fa6d61f
Merge pull request #4822 from ethereum/addressStaticCall
...
Add ``staticcall`` to ``address``.
2018-08-16 00:13:21 +02:00
Leonardo Alt
faed71c6b1
Review suggestions
2018-08-15 17:11:18 +02:00
Leonardo Alt
c3d3ae80fa
Add end to end tests
2018-08-15 17:11:18 +02:00
Leonardo Alt
b6c839e817
Disallow indexed reference types in events when using ABIEncoderV2
2018-08-15 17:11:18 +02:00
Daniel Kirchner
a34735016c
Add syntax test for `address.staticcall.value
`.
2018-08-15 16:06:48 +02:00
Daniel Kirchner
ed5265598b
Add view pure checker tests for `address.staticcall(...)
`.
2018-08-15 16:06:48 +02:00
Daniel Kirchner
7ca0aaaf6f
Add `staticcall
to
address
`.
2018-08-15 16:06:48 +02:00
chriseth
6c0261e6ab
Merge pull request #4390 from ethereum/abidecode
...
Add abi.decode
2018-08-15 12:31:26 +02:00
chriseth
c7d2af2637
Merge pull request #4583 from ethereum/nested_array_library_changelog
...
Bugfix Changelog entry regarding nested arrays returned by library functions
2018-08-15 12:30:54 +02:00
chriseth
9328ea4c3c
Add abi.decode(bytes data, (...))
2018-08-15 10:45:16 +02:00
bakaoh
3fa8829845
Fixes #4718 : High CPU usage when using large variable names
2018-08-15 10:23:08 +02:00
chriseth
cc54f6c425
Merge pull request #4738 from ethereum/dataloc_merged
...
Enforce data location.
2018-08-14 21:38:07 +02:00
chriseth
8f27fb1f4a
Merge pull request #4542 from aarlt/constructor_natspec
...
Fix: natspec annotations on constructors
2018-08-14 19:13:25 +02:00
chriseth
b30da8859a
Update external tests.
2018-08-14 18:53:06 +02:00
chriseth
13905a2094
Update tests.
2018-08-14 18:53:06 +02:00
mingchuan
16de7a0493
New test cases.
2018-08-14 18:53:06 +02:00
Chase McDermott
b000a022f2
Update tests
2018-08-14 18:53:06 +02:00
chriseth
3f42118d19
Merge pull request #4765 from ethereum/fixes-issue-4673
...
[WIP] Fixes issue where computing storage size for a number would take too long (or even cause a crash).
2018-08-14 17:34:04 +02:00
Jesse Busman
c059119145
Add implicit convertibility to function pointer with higher state mutability
2018-08-14 17:13:10 +02:00
chriseth
414559bd07
Merge pull request #4788 from ethereum/noWarnDoc
...
Test that documentation does not contain any warnings.
2018-08-14 16:33:39 +02:00
chriseth
ec7ccbdf86
Merge pull request #4782 from ethereum/encodePackedArrayOfStructs
...
Encode packed array of structs
2018-08-14 16:32:57 +02:00
Leonardo Alt
55e67e41f9
Update bug list and add regular expression to bug list and add test.
2018-08-14 15:57:38 +02:00
chriseth
6a5a187d83
Also extract tests that do not start with a pragma.
2018-08-14 15:50:46 +02:00
chriseth
f873389c62
Test that documentation does not contain any warnings.
2018-08-14 15:50:46 +02:00
Christian Parpart
43bda53410
Fixes issue where computing storage size for a number would take too long.
...
Fixes #4673 .
2018-08-14 15:38:10 +02:00
Christian Parpart
81faafe7f2
Adds support for structs in interfaces.
...
Closes #4733 .
2018-08-14 15:36:03 +02:00
Leonardo Alt
17cac588d0
Replace safety stop by invalid
2018-08-14 12:32:47 +02:00
chriseth
d01ffd1ad9
Merge pull request #4799 from ethereum/semanticsTestsGasEtAl
...
Semantics tests for ``gasleft()``, ``blockhash()`` ``tx.gasprice`` and ``block.gaslimit``
2018-08-14 12:14:53 +02:00
Daniel Kirchner
b325a70d59
Fix tests for constantinople (expect zero for the time being).
2018-08-14 11:42:34 +02:00
Daniel Kirchner
06b7edfdcf
Add missing tests for `gasleft()
,
blockhash()
tx.gasprice
and
block.gaslimit
`.
2018-08-14 11:42:34 +02:00
chriseth
6ca3973944
Merge pull request #4777 from ethereum/typeConversionMemory
...
Defaul data location for type conversions is memory.
2018-08-14 11:36:19 +02:00
chriseth
3dd31b704a
Merge pull request #4798 from ethereum/mappingArgumentsAndReturns
...
Mapping arguments and returns
2018-08-13 17:27:29 +02:00
chriseth
ae8218543b
Merge pull request #4696 from ethereum/byteLiteralConversion
...
Disallow ambiguous implicit and explicit conversions from number literals to bytesXX
2018-08-13 17:25:30 +02:00
Daniel Kirchner
dfcfc4c35b
Add tests for mappings in function types.
2018-08-13 16:33:37 +02:00
Daniel Kirchner
341128962f
Allow mappings of arrays as arguments and return values of internal functions.
2018-08-13 16:33:37 +02:00
Daniel Kirchner
4ae59acc09
Consider mappings return values in control flow analysis.
2018-08-13 16:33:37 +02:00
Daniel Kirchner
a9f31da411
Allow mapping arguments and return values in all internal functions.
2018-08-13 15:50:22 +02:00
chriseth
bd567a22c9
Defaul data location for type conversions is memory.
2018-08-13 14:38:12 +02:00
Daniel Kirchner
57ada1d69e
Allow mapping arguments and return values in internal library functions.
2018-08-13 14:31:10 +02:00
Daniel Kirchner
7d7abeb149
Disallow ambiguous conversions between number literals and bytesXX types.
2018-08-13 14:27:01 +02:00
Daniel Kirchner
954d7433bd
Disallow remappings with empty prefix.
2018-08-10 19:26:48 +02:00
chriseth
a38352569b
Tests.
2018-08-09 21:16:51 +02:00
chriseth
63d071d6e0
Merge pull request #4783 from elopio/test/function-call-syntactical-equality
...
tests: add yul simplifier not applied with function calls
2018-08-09 12:08:55 +02:00
Christian Parpart
79ba5b61b3
Fixes compilation under MSVC.
2018-08-09 10:14:47 +02:00
Leo Arias
1395bef7ae
tests: add yul simplifier not applied with function calls
2018-08-09 03:46:22 +00:00
Alex Beregszaszi
ed52f422b7
Rename FunctionKind SHA3 to KECCAK256 (as the instruction was renamed in libevmasm)
2018-08-08 22:37:40 +01:00
Alex Beregszaszi
478012a000
Merge pull request #4772 from ethereum/asm-json
...
Add tests for the assembler object (and avoid misusing string{} for u256)
2018-08-08 21:59:07 +01:00
Alexander Arlt
f76d4d5919
Fix: natspec annotations on constructors
...
- natspec annotations on constructore where ignored.
2018-08-08 21:53:35 +02:00
Alex Beregszaszi
0eeb06b6ea
Test for legacyAssembly in StandardCompiler
2018-08-08 20:52:18 +01:00
Alex Beregszaszi
a16461249f
Add tests for the assembler object
2018-08-08 20:52:18 +01:00
chriseth
d634d20b5b
Merge pull request #4684 from ethereum/underscores_in_numeric_literals
...
[BREAKING] Underscores in numeric literals
2018-08-08 21:36:57 +02:00
Alex Beregszaszi
bb071f3075
Merge pull request #4769 from ethereum/inlineasm-overloading-resolution
...
Provide nicer error message when referencing overloaded references
2018-08-08 17:55:10 +01:00
Alex Beregszaszi
9062704054
Merge pull request #4753 from mattaereal/boost-to-string-patch
...
Replace boost:lexical_cast<std::string> for std::to_string.
2018-08-08 16:07:25 +01:00
Alex Beregszaszi
3c791d637d
Provide nicer error message when referencing overloaded references
2018-08-08 15:59:24 +01:00
Matías Aereal Aeón
e902ce1aa0
Removing std:: from std::to_string and include for boost/lexical_cast
2018-08-08 11:26:30 -03:00
Alex Beregszaszi
1bfb841771
Remove experimental 0.5.0 pragma
2018-08-08 14:05:36 +01:00
chriseth
de8e9114fd
Merge pull request #4740 from ethereum/enforceNumberOfReturnValues
...
Disallow empty return in function with return arguments.
2018-08-08 14:59:09 +02:00
Alex Beregszaszi
fbc8443174
Merge pull request #4589 from sifmelcara/fix/dynamic-link-boost-test
...
Fix shared boost test library build by customizing main
2018-08-08 13:53:00 +01:00
Christian Parpart
b9222808f6
Cleanup & polish numbers-with-underscores parsing, also improving tests.
2018-08-08 13:38:46 +02:00
chriseth
154a7706ba
Merge pull request #4737 from ethereum/isoltestEarlyExit
...
Return from main if quit was requested during a sub-testsuite.
2018-08-08 12:55:01 +02:00
chriseth
3b2bd2c1df
Merge pull request #4749 from elopio/test/yul-simplifier-not-applied
...
tests: add yul simplifier not applied
2018-08-08 12:49:14 +02:00
Daniel Kirchner
99d3e8e45a
Add back lost test case to a more reasonable location.
2018-08-08 12:48:59 +02:00
Daniel Kirchner
576ba91970
Adjust return expressions in compilation tests.
2018-08-08 12:48:59 +02:00
Alex Beregszaszi
64e3c9913f
Merge pull request #4736 from ethereum/removeFillRight
...
Remove remaining instances of ``fillRight``.
2018-08-08 11:27:37 +01:00
Balajiganapathi S
09a36cba02
Add stricter hex underscore rules
2018-08-08 12:05:51 +02:00
Balajiganapathi S
0000bfc604
Allow underscores in numbers.
2018-08-08 12:05:51 +02:00
Leo Arias
cf3bf57cb2
tests: add yul simplifier not applied
2018-08-07 21:58:24 +00:00
chriseth
8e93b729a4
Merge pull request #4703 from ethereum/solc-fix-double-quoting-path-names
...
solc: Fixes double-quoting path names on stderr.
2018-08-07 21:46:00 +02:00
Daniel Kirchner
967bb6d999
Initialize `TestTool::m_formatted
`.
2018-08-07 21:23:01 +02:00
Daniel Kirchner
bb518b59aa
Update and extend tests for return expressions.
2018-08-07 20:49:52 +02:00
Daniel Kirchner
a6df7b1fb8
Always count all test cases in isoltest and exit early on user request.
2018-08-07 19:28:21 +02:00
Daniel Kirchner
b11e39e25e
Remove remaining instances of `fillRight
` left over from tuple wildcards assignments.
2018-08-07 18:51:53 +02:00
chriseth
d7756322c0
Merge pull request #4731 from ethereum/interface-enum
...
Allow enums in interfaces
2018-08-07 17:20:05 +02:00
Alex Beregszaszi
a765b5b31c
Merge pull request #4720 from ethereum/abi-rational-type-identifier
...
Fix type identifiers for RationalNumberType (on negative numbers)
2018-08-07 14:25:11 +01:00
Alex Beregszaszi
4158a310bd
Merge pull request #4729 from ethereum/slot-on-non-storage
...
Properly handle invalid references used together with _slot and _offset.
2018-08-07 14:16:43 +01:00
Alex Beregszaszi
34a711a14d
Add endToEnd test for referencing enums
2018-08-07 15:04:17 +02:00
Christian Parpart
39ffd7500e
solc: Fixes double-quoting path names on stderr and adds tests for it.
...
Before it was possible to get a failure message, such as:
""notfound.sol"" is not found
whereas it should be:
"notfound.sol" is not found.
2018-08-07 14:55:22 +02:00
Alex Beregszaszi
5298d818c4
Add test for abi.encode (negative) literals
2018-08-07 13:44:24 +01:00
Alex Beregszaszi
ce29aac8ad
Add more syntax tests for enums and interfaces/libraries
2018-08-07 13:39:21 +01:00
Alex Beregszaszi
13e37df97c
Allow enums in interfaces
2018-08-07 13:28:53 +01:00
Alex Beregszaszi
b0f9fc5af0
Fix type identifiers for RationalNumberType
2018-08-07 13:23:14 +01:00
chriseth
9d3827266c
Merge pull request #4695 from ethereum/test-natspec
...
Be explicit about which contract to test for in the Natspec tests
2018-08-07 14:19:56 +02:00
Alex Beregszaszi
05cc7e79e1
More precise error message if using non-variables with _slot/_offset
2018-08-07 13:18:54 +01:00
Alex Beregszaszi
eb7b3862ac
Properly handle invalid references used together with _slot and _offset.
2018-08-07 13:18:38 +01:00
Alex Beregszaszi
8b2d630275
Merge pull request #4724 from ethereum/slot-in-assembly
...
Do not crash on using _slot and _offset suffixes on their own
2018-08-07 12:55:40 +01:00
Alex Beregszaszi
296ba24f7f
Do not crash on using _slot and _offset suffixes on their own
2018-08-07 12:14:12 +01:00
chriseth
71e26f6adb
Remove clone feature.
2018-08-07 11:10:50 +01:00
chriseth
0449b6446e
Merge pull request #4694 from ethereum/test-abijson
...
Be explicit about which contract to test for in ABIJSON tests
2018-08-06 19:01:05 +02:00
chriseth
276724dedc
Merge pull request #4663 from ethereum/dropConstantAST
...
[BREAKING] Drop constant field from JSON AST
2018-08-06 18:55:12 +02:00
chriseth
3b5eee4998
Tests for deriving types for empty string.
2018-08-06 17:10:23 +02:00
chriseth
bc73617f5e
Merge pull request #4689 from ethereum/cleanup-050-tests
...
Cleanup 0.5.0 test cases
2018-08-06 14:45:31 +02:00
Alex Beregszaszi
423cd52844
Be explicit about which contract to test for in the Natspec tests
2018-08-06 13:35:53 +01:00
Alex Beregszaszi
3c408a32c4
Be explicit about which contract to test for in ABIJSON tests
2018-08-06 13:30:38 +01:00
Alex Beregszaszi
2ab66bf798
Cleanup 0.5.0 test cases
2018-08-06 12:03:00 +01:00
chriseth
9d03de1f25
Merge pull request #4671 from ethereum/mappingTupleAssignment
...
Disallow assignments to mappings within tuple assignments; allow for local variables.
2018-08-06 12:59:16 +02:00
chriseth
3576980710
Merge pull request #4644 from ethereum/event_struct_error
...
Disallow structs in events without ABIEncoderV2
2018-08-06 11:44:05 +02:00
chriseth
30f981fc2c
Merge pull request #4681 from ethereum/var-suggestion-crash
...
Fix declaration suggestion for var with different number of components
2018-08-06 11:21:54 +02:00
Daniel Kirchner
bdd86cb39c
Update tests.
2018-08-06 11:17:21 +02:00
chriseth
3684151e53
Merge pull request #4677 from ethereum/jsonAstTestExtraction
...
JSON AST test extraction
2018-08-06 11:01:51 +02:00
Alex Beregszaszi
83e6c34526
Fix declaration suggestion for var with different number of components
2018-08-04 15:22:22 +01:00
Daniel Kirchner
55386ba130
Extract AST JSON tests.
2018-08-03 20:35:50 +02:00
Daniel Kirchner
d923926ff7
Infrastructure for extracting JSON AST tests.
2018-08-03 20:35:50 +02:00
Christian Parpart
a4ee1dfc83
Merge pull request #4412 from ethereum/v050-reference-resolver-errorTypeForLoose
...
[BREAKING] permanently set errorTypeForLoose from Warning to SyntaxError
2018-08-03 19:30:33 +02:00
Daniel Kirchner
cbae02b514
Additional semantics test cases.
2018-08-03 17:38:30 +02:00
Alex Beregszaszi
2c2d4c47ea
Merge pull request #4662 from evgeniuz/develop
...
added helper function that joins vectors of strings
2018-08-03 16:13:13 +01:00
Daniel Kirchner
1e4b5886d6
Allow assignments to local variables of mapping types.
2018-08-03 16:22:03 +02:00
Daniel Kirchner
c0a169ca90
Disallow assignments to mappings within tuple assignments.
2018-08-03 15:46:26 +02:00
Leonardo Alt
20c6cea7bb
Disallow structs in events without ABIEncoderV2
2018-08-03 13:41:27 +02:00
Evgeniy Filatov
3705bcc9bc
added helper function that joins vectors of strings, refactored suggestions formattingi function to use it
2018-08-03 14:07:03 +03:00
Daniel Kirchner
35c5b7de25
Turn warning about uninitialized storage returns into an error.
2018-08-02 19:34:38 +02:00
Daniel Kirchner
9d11557dc9
Define BOOST_TEST_DYN_LINK for building soltest if Boost_USE_STATIC_LIBS is not set.
2018-08-02 14:41:32 +02:00
Christian Parpart
43c01361f3
Drops tests for inline assembly jumps and function access as both isn't possible anymore.
2018-08-02 13:37:22 +01:00
Christian Parpart
a4ab305347
Drop swap_peephole_optimization test from EndToEndTests
...
Already covered by libevmasm/Optimiser: peephole_noncommutative_swap1, peephole_commutative_swap1 and peephole_swap_comparison
2018-08-02 13:37:22 +01:00