Alex Beregszaszi
219406f45b
Add CLI option to soltest to always use ABIEncoderV2
2019-02-20 16:55:19 +01:00
chriseth
b14d22d11e
Tests for events with structs in libraries.
2019-02-20 14:35:02 +01:00
chriseth
0613c69c4a
Merge pull request #6043 from ethereum/asm-jump-invalidlabel
...
Proper error message for missing variables in inline assembly
2019-02-20 14:32:40 +01:00
chriseth
fcd82025de
Merge pull request #6046 from ethereum/smt_division_tests
...
[SMTChecker] Move tests that contain division to boost tests
2019-02-20 14:29:15 +01:00
Leonardo Alt
123d0857c5
[SMTChecker] Move tests that contain division to boost tests
2019-02-20 12:17:03 +01:00
Alex Beregszaszi
687522a2f5
Move inline assembly tests from nameAndTypeResolution to inlineAssembly
2019-02-20 11:00:02 +00:00
Alex Beregszaszi
52496ea719
Proper error message for missing variables in inline assembly
2019-02-20 10:36:55 +00:00
Mathias Baumann
a63f7ca9df
Fix crash due to missing type info
2019-02-19 17:28:44 +01:00
chriseth
d9e4a10d5a
Merge pull request #6000 from ethereum/fixECRecoverABIV2
...
Fixed internal error related to ecrecover and ABIEncoderV2.
2019-02-19 14:36:08 +01:00
chriseth
874648b924
Merge pull request #5999 from ethereum/smt_lazy_overflow
...
[SMTChecker] Check for under/overflow in the end of the function
2019-02-19 14:28:55 +01:00
chriseth
05541e5adb
Fixed internal error related to ecrecover and ABIEncoderV2.
2019-02-19 14:17:03 +01:00
chriseth
d5791fef41
Fix combination of delegatecall and ABIEncoderV2.
...
We can set the flag to false for bare delegatecall, because we always
send a memory string and never a storage reference.
2019-02-19 13:57:03 +01:00
chriseth
55c4131a03
Merge pull request #6030 from ethereum/fixABIEncoderV2Mapping
...
Allow cleanup for mappings (do nothing).
2019-02-19 13:56:21 +01:00
Leonardo Alt
34470f3549
[SMTChecker] Only check for overflow/underflow in the end of the function
2019-02-18 23:55:58 +01:00
Alex Beregszaszi
2949bd14dd
Merge pull request #6028 from ethereum/warn-about-unused-struct-array-expr
...
Detect custom type expressions that have no effect
2019-02-18 21:12:04 +00:00
Mathias Baumann
e3d4155fa8
Detect custom type expressions that have no effect
2019-02-18 18:59:31 +01:00
chriseth
c690f679cb
Allow cleanup for mappings (do nothing).
2019-02-18 18:50:22 +01:00
chriseth
968ca88690
Merge pull request #5872 from ethereum/semantic-tests-split
...
Semantic test infrastructure
2019-02-18 18:13:55 +01:00
chriseth
1b6d87c5bd
Merge pull request #5979 from ethereum/fix-context-for-hint
...
Make sure "value" error hint is only displayed in the right context
2019-02-18 17:35:31 +01:00
chriseth
e88765f936
Merge pull request #6022 from ethereum/fixFunctionScoping
...
Properly detect name clashes with functions before their definition.
2019-02-18 16:47:21 +01:00
Mathias Baumann
ee9394b4aa
Move 'warnUnused' tests to subfolder
2019-02-18 16:42:58 +01:00
Mathias Baumann
093b9ced97
Make sure "value" error hint is only displayed in the right context
...
Before, the hint would be shown for any "value" member, even a user-specified one.
2019-02-18 16:29:57 +01:00
chriseth
cb0ad2266c
Merge pull request #6008 from ethereum/smt_fix_abstract_assignment
...
[SMTChecker] Assert type is not function when assigning
2019-02-18 14:54:20 +01:00
chriseth
b4cd2d6a93
Properly detect name clashes with functions before their definition.
2019-02-18 14:51:05 +01:00
chriseth
db7b38e3c4
Merge pull request #5978 from ethereum/fix-broken-hint
...
Fix error msg hint for non-payable contracts
2019-02-18 11:49:07 +01:00
Erik Kundt
dacad629ef
Adds semantic tests to test framework and isoltest.
2019-02-15 13:27:15 +01:00
Mathias Baumann
419a12db03
TypeChecker: Add test to increase coverage
2019-02-14 13:41:33 +01:00
Leonardo Alt
22cdfb18d4
[SMTChecker] Assert type is not function when assigning
2019-02-14 13:32:56 +01:00
Mathias Baumann
10a9960eb3
Fix error msg hint for non-payable contracts
2019-02-14 11:39:19 +01:00
chriseth
b1df990a0f
Merge pull request #5990 from ethereum/provideAccessToAssmeblyAST
...
Provide access to assembly ast
2019-02-13 17:38:22 +01:00
chriseth
c5879589af
Merge pull request #5998 from ethereum/codingStyleCheck
...
More coding style checks
2019-02-13 17:36:34 +01:00
chriseth
17817dc0ef
Merge pull request #5995 from ethereum/incr-type-checker-cov
...
Add tests to increase TypeChecker.cpp coverage
2019-02-13 17:06:58 +01:00
chriseth
1a823f0bf8
Fix tabs/spaces.
2019-02-13 17:05:48 +01:00
chriseth
17ea467e5b
Fix style of "const".
2019-02-13 16:34:53 +01:00
Mathias Baumann
1e603c27ea
Add tests to increase TypeChecker.cpp coverage
2019-02-13 16:31:26 +01:00
chriseth
3a3ed1c6b5
Fix assertion concerning jumps in strict assembly.
2019-02-13 15:57:14 +01:00
Mathias Baumann
6a6cc27b71
Rename & move tests of group typeChecking to subfolder
2019-02-13 15:52:31 +01:00
chriseth
a344381d5e
Provide access to AssemblyStack's AST.
2019-02-13 14:19:56 +01:00
Erik Kundt
190634e1f9
Implements infrastructure for semantic tests.
2019-02-13 13:05:58 +01:00
chriseth
0bd049c849
Adapet uses of AssemblyStack.
2019-02-13 12:23:07 +01:00
chriseth
9ab72f0188
Merge pull request #5971 from ethereum/overloadedEvents
...
More tests for overloaded events.
2019-02-12 12:00:02 +01:00
Bhargava Shastry
7751fa740f
Ensure we fail gracefully when user tries to optimize Yul code
2019-02-12 11:21:02 +01:00
chriseth
091bbdb459
More tests for overloaded events.
2019-02-12 10:54:58 +01:00
chriseth
0b392fff7e
Merge pull request #5968 from ethereum/calldataArrays
...
Disallow calldata arrays with dynamically encoded base types in TypeChecker.
2019-02-11 18:08:10 +01:00
Daniel Kirchner
9e32aa7510
Disallow calldata arrays with dynamically encoded base types in TypeChecker.
2019-02-11 17:13:12 +01:00
chriseth
91d224dfb6
Merge pull request #5966 from ethereum/AnsiColorized
...
Adapts tests/ to use AnsiColorized (the generalized/moved version of FormattedScope, which in turn is removed in this PR)
2019-02-11 16:41:14 +01:00
chriseth
92cb6cb793
Merge pull request #5936 from ethereum/calldataStructsV2
...
ABIEncoderV2: Implement calldata structs without dynamically encoded members.
2019-02-11 16:18:27 +01:00
chriseth
18c7ad08a0
Merge pull request #5925 from ethereum/stackCompressor
...
Stack compressor
2019-02-11 16:17:47 +01:00
Christian Parpart
53f9be8a23
Adapts tests/ to use AnsiColorized (the generalized/moved version of FormattedScope, which in turn is removed in this PR)
2019-02-11 16:00:24 +01:00
chriseth
83083d2208
Stack compressor.
2019-02-11 15:48:29 +01:00
chriseth
5a34743d88
Allow optimizer steps to run on FunctionDefinition and group suite.
2019-02-11 15:48:29 +01:00
chriseth
b34e104173
Make dialect a shared pointer.
2019-02-11 15:48:29 +01:00
Mathias Baumann
259d803387
Conditional Expression: Delay invalid type fatal error
...
Check the whole conditional first and then output errors for
both, the true and false expressions.
2019-02-11 15:47:19 +01:00
Mathias Baumann
08977af843
Rename & move test to move away from number prefix
2019-02-11 15:47:19 +01:00
Daniel Kirchner
0e4912a203
ABIEncoderV2: Implement calldata structs without dynamically encoded members.
2019-02-11 15:46:58 +01:00
chriseth
94607011dc
Merge pull request #5965 from ethereum/fixSolcjsTests
...
Use master branch from solc-js for tests
2019-02-11 15:46:09 +01:00
chriseth
b5a2c66771
Merge pull request #5957 from ethereum/function-param-fix
...
Ensure function parameter names always matches parameter types length
2019-02-11 15:45:28 +01:00
chriseth
d099d55c66
Use master branch from solc-js.
2019-02-11 15:29:58 +01:00
Mathias Baumann
66b24225fb
Remove duplicate if-check
2019-02-11 14:56:57 +01:00
chriseth
49cd55d3a0
Merge pull request #5839 from ethereum/inplaceEncoding
...
Inplace and non-padded encoding for ABIEncoderV2.
2019-02-11 12:01:28 +01:00
Mathias Baumann
fe2429de9f
Packed Encoding: Disallow types in v2 that aren't allowed in v1
2019-02-11 11:37:48 +01:00
chriseth
227addfcef
Syntax tests.
2019-02-11 11:37:48 +01:00
chriseth
7684d886ae
Semantic tests.
2019-02-11 11:37:47 +01:00
Mathias Baumann
feae01f042
Add tests to increase coverage of TypeChecker
2019-02-11 11:23:56 +01:00
Mathias Baumann
d41ffd1dcf
Rename & move tests to get rid of old number prefix in name
2019-02-11 11:23:20 +01:00
Daniel Kirchner
9203363fe9
Merge pull request #5860 from ethereum/test-file-parser
...
Test file parser.
2019-02-07 19:02:13 +01:00
Mathias Baumann
ee28cb65a6
Add tests to increase coverage of TypeChecker
2019-02-06 20:45:30 +01:00
Erik Kundt
c9c4578023
Adds support for tuples in test file parser.
2019-02-06 17:25:40 +01:00
Erik Kundt
161b22bd13
Cleans up test file parser and its tests.
2019-02-06 17:22:40 +01:00
Erik Kundt
7fa167977b
Adds multi-line support for test file parser.
2019-02-06 17:22:40 +01:00
Erik Kundt
f90c6f57bb
Implements a test file parser.
2019-02-06 17:22:40 +01:00
chriseth
231cec56c6
Merge pull request #5926 from ethereum/inv-num-crash
...
Fix crash for too large struct array indicies
2019-02-06 14:11:25 +01:00
Mathias Baumann
9f431339ef
Fix crash for too large struct array indicies
2019-02-06 11:50:25 +01:00
Alex Beregszaszi
532c55acbd
Add better sanity check to test/Metadata
2019-02-05 23:13:21 +00:00
Alex Beregszaszi
43ccc75293
Remove duplicated code in test/Metadata
2019-02-05 23:13:17 +00:00
Alex Beregszaszi
26de5684a2
Move bytecodeSansMetadata(bytes) helper to test/Metadata
2019-02-05 23:13:01 +00:00
Alex Beregszaszi
be22032141
Clean up some includes in tests
2019-02-05 22:58:43 +00:00
Alex Beregszaszi
3cdcd06b66
Add last test case for callbacks in libsolc
2019-02-05 20:26:47 +00:00
chriseth
263eaaa516
Merge pull request #5937 from ethereum/libsolc-callback-test
...
Add test cases for libsolc with callbacks
2019-02-05 21:11:44 +01:00
chriseth
438e19aa0f
Merge pull request #5931 from ethereum/fix-mapping-storage-check
...
Fix check that mappings can only have storage location
2019-02-05 21:03:20 +01:00
Alex Beregszaszi
257dbf1f6a
Add test cases for libsolc with callbacks
2019-02-05 19:34:56 +00:00
Alex Beregszaszi
e9a0d99218
Add optimiser test for triggering CopyMethod in ConstantOpimiser
2019-02-05 18:44:53 +00:00
Mathias Baumann
77f407d450
Fix check that mappings can only have storage location
2019-02-05 18:06:42 +01:00
chriseth
d7e2838702
Merge pull request #5904 from bshastry/ossfuzz-dict
...
Add fuzzer config files for oss-fuzz and a solidity fuzzing dictionary
2019-02-04 19:17:39 +01:00
chriseth
22c8d74a8a
Store all stack errors before they are thrown.
2019-02-04 17:32:05 +01:00
chriseth
77baf6caf7
Compilability checker.
2019-02-04 17:32:05 +01:00
Bhargava Shastry
4cac45dc4a
Add fuzzer config files for oss-fuzz and a solidity fuzzing dictionary.
...
Update ossfuzz README.md.
2019-02-04 15:58:41 +01:00
chriseth
bb46e91677
Merge pull request #5891 from ethereum/const-opt-assembly
...
Take only Assembly instance as an input to ConstantOptimiser
2019-01-31 18:54:12 +01:00
Alex Beregszaszi
ae1cd252b0
Take only Assembly instance as an input to ConstantOptimiser
2019-01-31 16:02:29 +00:00
Alex Beregszaszi
554511b68e
Introduce solidity_free in libsolc
2019-01-31 15:53:55 +00:00
Alex Beregszaszi
b1cb949a4b
Shutdown IPC socket gracefully in RPCSession
2019-01-31 13:16:35 +00:00
chriseth
ddab3f06a5
Merge pull request #5907 from ethereum/rpcsession-check-id
...
Check message identifier in RPCSession
2019-01-31 13:36:37 +01:00
Alex Beregszaszi
8e2de02fc2
Format RPCSession parsing error more nicely
2019-01-30 13:34:40 +00:00
Alex Beregszaszi
e1780e3ae8
Check message identifier in RPCSession
2019-01-30 12:57:25 +00:00
chriseth
35483422f3
Pad code to multiple of 32 bytes.
2019-01-30 11:31:28 +01:00
Alex Beregszaszi
1276f3c4f3
Clean up includes in the fuzzer
2019-01-29 16:14:51 +00:00
Alex Beregszaszi
0e2b43e141
Pass by reference in fuzzer
2019-01-29 16:14:48 +00:00
Alex Beregszaszi
c537321309
Add more debuggin in the fuzzer
2019-01-29 16:08:25 +00:00
chriseth
e8d918c4ee
Merge pull request #5887 from ethereum/fuzzer-optim
...
Fix fuzzer_common to keep assembly intact
2019-01-28 17:24:28 +01:00
Alex Beregszaszi
c19afd5ad3
Fix fuzzer_common to keep assembly intact
2019-01-28 16:18:49 +00:00
Alex Beregszaszi
9aafa32825
Disallow empty import statements
2019-01-28 13:52:15 +00:00
Alex Beregszaszi
2fc7928697
Merge pull request #5864 from ethereum/tuneOptOrder
...
Some optimizer tuning.
2019-01-28 13:50:09 +00:00
Alex Beregszaszi
06998bc8e1
Run constant optimiser on fresh inputs in the fuzzer
2019-01-28 10:40:33 +00:00
chriseth
12e2187661
Some tuning.
2019-01-24 23:06:01 +01:00
chriseth
2e7274b49d
Merge pull request #5837 from ethereum/fixCalldataEncodedSize
...
Fix reported packed encoded size.
2019-01-24 13:10:27 +01:00
chriseth
14b553897e
Tests.
2019-01-23 11:13:24 +01:00
Bhargava Shastry
24b1de7df0
This PR refactors and shares oss-fuzz specific test harness code with the afl fuzzer harness. ChangeLog updated.
2019-01-23 11:06:25 +01:00
chriseth
ea292393a3
Merge pull request #5838 from maxsam4/useLiteralContent-patch
...
useLiteralContent data validation
2019-01-23 10:35:32 +01:00
Mudit Gupta
2f91781a80
useLiteralContent data validation
...
Squashed commit of the following:
commit bbceee6997c1b951eb6054f7d5b7560fe1773690
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 23:27:49 2019 +0530
Removed extra check
commit 4f7c3cc58e94836b1dddcc5f2938da14adad6252
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:51:05 2019 +0530
Updated test error message
commit 5da45f2a23840e7bb1978853e1c184faec65b3e0
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:46:09 2019 +0530
Renamed test
commit e661418deac25f31c49091be3c80244f566fc14c
Author: Leonardo <leo@ethereum.org>
Date: Tue Jan 22 17:41:56 2019 +0530
Update libsolidity/interface/StandardCompiler.cpp
Co-Authored-By: maxsam4 <guptamudit@ymail.com>
commit d289b4dc1956ab736aada613e810cf2e2d124d4d
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:29:40 2019 +0530
changed style
commit 5a7cf08db3027d75081d2e698dd51b807bef5abb
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:20:37 2019 +0530
Added test case for missing useLiteralContent
commit 6e866c46aa92d6a89f2b341bd717c3886946f3ff
Author: Mudit Gupta <guptamudit@ymail.com>
Date: Tue Jan 22 17:09:30 2019 +0530
input check for useLiteralContent
2019-01-23 10:22:27 +05:30
Alex Beregszaszi
028bc7d20a
Only replace solc-js copies in directories present during externalTests
2019-01-22 17:03:24 +00:00
Alex Beregszaszi
a52de117ea
Do not use fork of openzeppelin anymore
2019-01-22 16:38:17 +00:00
chriseth
faa66983ae
Use v0.5.0 tag of solc-js repository for external tests.
2019-01-22 10:03:35 +01:00
Leonardo Alt
7f8ceaadab
[SMTChecker] Clear state knowledge after external function calls
2019-01-21 12:58:40 +01:00
chriseth
f8e9aed839
Merge pull request #5717 from ethereum/smt_typecast
...
[SMTChecker] Support basic typecast without truncation
2019-01-21 12:35:07 +01:00
Daniel Kirchner
610ef9f199
Disallow calldata structs.
2019-01-21 10:30:57 +01:00
chriseth
2ec997e697
Merge pull request #5775 from ethereum/codeAccess
...
Provide access to code of contract types.
2019-01-18 00:16:06 +01:00
chriseth
0711873a2f
Merge pull request #5794 from ethereum/ssaReverser
...
[Yul] Add SSAReverser to optimiser.
2019-01-17 23:50:51 +01:00
Daniel Kirchner
29f66b2674
Stabilize SSAReverser.
2019-01-17 21:05:32 +01:00
Daniel Kirchner
fd16585724
Undo second SSA transformation and add more tests.
2019-01-17 20:37:43 +01:00
Daniel Kirchner
6de2d92f20
Add SSAReverser to the yul optimiser.
2019-01-17 20:37:43 +01:00
chriseth
2a0d4f358c
Add test for content of creationCode and runtimeCode.
2019-01-17 20:36:48 +01:00
chriseth
fed56f33d5
Type is not reserved anymore.
2019-01-17 20:36:48 +01:00
chriseth
4669b06ab4
Warn if type(..).runtimeCode is used with assembly in the constructor.
2019-01-17 20:36:48 +01:00
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