Commit Graph

5307 Commits

Author SHA1 Message Date
a3d4
a244daaacb Exclude tests with overly deep nesting from antlr grammar checks 2020-09-29 20:20:20 +02:00
a3d4
3c876fcb60 Fix ICE caused by an array of mappings 2020-09-29 18:17:46 +02:00
Harikrishnan Mulackal
2b9f040c48 Optimize exp when base is -1 2020-09-29 17:44:09 +02:00
chriseth
9a28dbfebd
Merge pull request #9925 from ethereum/develop
Merge develop into breaking.
2020-09-29 16:42:56 +02:00
a3d4
3698cd54a5 Complete error coverage of Parser and SyntaxChecker 2020-09-29 16:07:02 +02:00
chriseth
4b67829328
Merge pull request #9917 from ethereum/leb-encoding
Add LEB128 encoding functions & tests.
2020-09-29 14:55:25 +02:00
Leonardo Alt
352cce5fc8 [SMTChecker] Support addmod and mulmod. 2020-09-29 12:45:19 +02:00
chriseth
4bdec8107c Merge remote-tracking branch 'origin/develop' into HEAD 2020-09-29 09:53:50 +02:00
Alexander Arlt
b6e1415509 Add LEB128 encoding functions & tests. 2020-09-28 16:06:19 -05:00
Leonardo Alt
fa7c9a0dc6 Simplify internal function calls 2020-09-28 15:31:15 +02:00
chriseth
9115100f2a
Merge pull request #9909 from ethereum/fix-9890
Fix missing annotation settings because of early return
2020-09-28 12:27:43 +02:00
Mathias Baumann
76bb2cafe9 Fix missing annotation settings because of early return 2020-09-28 12:12:44 +02:00
chriseth
bab2d6d644
Merge pull request #9852 from ethereum/fix-9851
Typechecker: Disallow free function redefinition
2020-09-28 11:15:47 +02:00
a3d4
9721bda36e Complete error coverage of ParserBase 2020-09-28 01:56:25 +02:00
Leonardo Alt
e6bd18525b [SMTChecker] Add engine prefix to verification target error messages 2020-09-25 19:09:06 +02:00
Leonardo Alt
0223571987 [SMTChecker] Do not report error when rlimit 2020-09-25 18:43:10 +02:00
Bhargava Shastry
e2a2276272 Contract level checker: Disallow free function redefinition and alias
shadowing another free function

Co-authored-by: chriseth <chris@ethereum.org>
2020-09-25 17:09:58 +02:00
Alex Beregszaszi
9f3d5d3e2f [SMTChecker] Implement support for memory allocation 2020-09-25 15:56:24 +01:00
Alex Beregszaszi
9c1b041dcb [SMTChecker] Keep constraints of string literals after assignment 2020-09-25 11:32:48 +01:00
Alex Beregszaszi
5090353a1a [SMTChecker] Keep knowledge about string literals 2020-09-25 11:32:23 +01:00
Leonardo
57e1b2cb92
Merge pull request #9881 from ethereum/smt_fixed_bytes_index_access
[SMTChecker] Support fixed bytes index access
2020-09-25 11:32:56 +02:00
Leonardo Alt
df8c6d94e3 [SMTChecker] Support fixed bytes index access 2020-09-25 09:59:38 +02:00
chriseth
5711d664aa
Merge pull request #9887 from ethereum/evmhost
EVMHost: keep precompile balance/settings across resets
2020-09-24 21:15:06 +02:00
Alex Beregszaszi
e93992257e Add more semantic tests for balance/extcodehash 2020-09-24 19:04:27 +01:00
Alex Beregszaszi
6479138dd4 EVMHost: keep precompile balance/settings across resets
Also set proper codehash for precompiles.
2020-09-24 18:51:39 +01:00
chriseth
c0954be254
Merge pull request #9886 from ethereum/develop
Merge develop into breaking.
2020-09-24 19:49:20 +02:00
chriseth
d52b3839e2
Merge pull request #9882 from ethereum/invalidOnErrorYul
[SolYul] Use invalid opcode for internal errors
2020-09-24 19:37:44 +02:00
chriseth
b5c340cd66 Update tests 2020-09-24 17:07:43 +02:00
Leonardo
d180d6cdaf
Merge pull request #9880 from ethereum/smt-abi-type
[SMTChecker] Do not warn on "abi" as an identifer
2020-09-24 17:02:17 +02:00
chriseth
763282343f
Merge pull request #9883 from ethereum/develop
Merge develop into breaking.
2020-09-24 16:05:51 +02:00
Harikrishnan Mulackal
ec25e960f9
Merge pull request #9863 from ethereum/signed-exp-tests
Signed exp tests
2020-09-24 15:59:01 +02:00
Alex Beregszaszi
6edfdff187 [SMTChecker] Do not warn on "abi" as an identifer
There is an approprate warning for the function call.
2020-09-24 13:57:42 +01:00
chriseth
a9f9b4db27
Merge pull request #9872 from ethereum/smt_remove_tests
Extract boost smt and remove unused tests
2020-09-24 13:20:19 +02:00
chriseth
0a3b836f5a
Merge pull request #9867 from ethereum/string-literals
More clear error messages with converting (hex) string literals
2020-09-24 12:49:46 +02:00
Leonardo
35a7d5d3e4
Merge pull request #9873 from ethereum/smt_dec_rlimit
[SMTChecker] Decrease rlimit
2020-09-23 23:11:59 +02:00
Leonardo Alt
ebb6f61506 [SMTChecker] Decrease rlimit 2020-09-23 19:28:47 +02:00
Alex Beregszaszi
e54110ff17 Return UTF-8 error in BoolResult and remove it from string type 2020-09-23 17:35:05 +01:00
Alex Beregszaszi
a154594de6 Display string literal as hex in error messages if it is not printable ASCII 2020-09-23 17:33:39 +01:00
Alex Beregszaszi
0e5abbd4a9 Display location of invalid UTF-8 sequence in unicode literals in SyntaxChecker 2020-09-23 17:01:02 +01:00
Leonardo Alt
8eba66daf9 Extract boost smt and remove unused tests 2020-09-23 17:55:55 +02:00
Alex Beregszaszi
ca743191b7 Report why assigning oversized hex strings to bytes fail 2020-09-23 16:46:47 +01:00
Alex Beregszaszi
af8d78010e Display BoolResult from implicit/explicit conversions for more clarity in error messages 2020-09-23 16:04:07 +01:00
Harikrishnan Mulackal
c314ca3cf2 Tests for signed exponentiation 2020-09-23 16:27:33 +02:00
Đorđe Mijović
858b4507e2
Merge pull request #9854 from ethereum/bitwiseSmt
[SMTChecker] Support compound shifts and bitwise and, or, and xor
2020-09-23 12:35:48 +02:00
chriseth
0c6dc1dce4
Merge pull request #9862 from ethereum/develop
Merge develop into breaking
2020-09-23 12:22:32 +02:00
chriseth
91f7c6644f Only expect more failure data params if they are there. 2020-09-23 12:22:11 +02:00
chriseth
9c5e14e309
Merge pull request #9839 from ethereum/annotations-optional
Make annotations ``SetOnce`` or ``optional`` where feasible
2020-09-23 11:44:21 +02:00
Djordje Mijovic
96bafb9ba3 [SMTChecker] Updating old and adding new tests for compound shift operators. 2020-09-23 11:31:37 +02:00
Djordje Mijovic
0193952106 [SMTChecker] Updating old and adding new tests for compound bitwise xor operator. 2020-09-23 11:31:37 +02:00
Djordje Mijovic
e2e0b33ee7 [SMTChecker] Updating old and adding new tests for compound bitwise or operator. 2020-09-23 11:31:41 +02:00
Djordje Mijovic
69df163dcb [SMTChecker] Updating old and adding new tests for compound bitwise and operator. 2020-09-23 11:31:37 +02:00
Leonardo Alt
f4ee4cd479 Update tests 2020-09-22 20:51:28 +02:00
Alex Beregszaszi
709d25bd3d [SMTChecker] Support address type conversion with literals 2020-09-22 18:49:11 +01:00
Mathias Baumann
dd81d05559 Make annotations `SetOnce or optional` where feasible 2020-09-22 17:38:21 +02:00
chriseth
700cc4c9d3
Merge pull request #9836 from ethereum/fix-missing-check-for-nested-dynamic-arrays-with-abi-encode-decode-v1
Add missing check for nested dynamic arrays in abi.encode()/decode() functions in ABIEncoderV1
2020-09-22 15:49:17 +02:00
chriseth
83aa8c1e23
Merge pull request #9818 from a3d4/introduce-compositetype
Introduce CompositeType
2020-09-21 22:33:04 +02:00
Daniel Kirchner
7fa9a9d312
Merge pull request #9162 from ethereum/memoryEscalator
Memory Escalator
2020-09-21 20:03:38 +02:00
chriseth
8e77bb5bfc
Merge pull request #9838 from ethereum/fix-wrong-name-reported-for-invalid-named-argument
Fix wrong name reported for invalid named argument
2020-09-21 17:17:14 +02:00
a3d4
6b77a20134 Introduce CompositeType 2020-09-21 16:18:04 +02:00
chriseth
306fef334b
Merge pull request #9546 from ethereum/expToShift
Optimization rule: Replace exp by shl.
2020-09-21 12:21:47 +02:00
Daniel Kirchner
48f620fb50 Reverse the order of the memory offsets assigned to variables. 2020-09-17 22:13:27 +02:00
Daniel Kirchner
f4b42d1c72 Add stack limit evader. 2020-09-17 22:13:27 +02:00
Kamil Śliwak
aae640dd3a Fix wrong name used in error message when reporting invalid named argument 2020-09-17 18:59:18 +02:00
Kamil Śliwak
4045f41c8d Make the test for invalid named arguments more robust
- Add more parameters and use different types.
- Now it's clear that the name used in the error message is wrong.
2020-09-17 17:29:28 +02:00
Kamil Śliwak
dc62d763eb Move syntax tests for named arguments from namedAndTypeResolution/ to functionCalls/ 2020-09-17 17:29:28 +02:00
Kamil Śliwak
1a4cc4e64d Fix type check for nested arrays in abi.encode/decode functions in ABIEncoderV1
- Without this fix, nested arrays are not detected as unsupported and compiler fails on an UnimplementedError.
- Now it's consistent with how structs are handled in ABIEncoderV1.
2020-09-17 17:29:16 +02:00
Kamil Śliwak
89e696ca1b Allow using zero in patterns passed to isoltest --test 2020-09-17 17:28:49 +02:00
chriseth
684fff34a9 Replace exp by shl. 2020-09-17 16:06:52 +02:00
chriseth
aa7a6922e7 Restrict unary negation to signed integers. 2020-09-17 15:01:53 +02:00
chriseth
e4231b879b
Merge pull request #9834 from ethereum/develop
Merge develop into breaking.
2020-09-17 15:00:41 +02:00
chriseth
6e4205e445 Do not run reasoning test if no SMT Solver is available. 2020-09-17 13:43:35 +02:00
Harikrishnan Mulackal
64ddf2c699 Verify simplification rule exp(2, X) to shl(X, 1) 2020-09-16 17:36:39 +02:00
chriseth
9750286ee4
Merge pull request #9823 from ethereum/develop
Merge develop into breaking.
2020-09-16 14:24:58 +02:00
chriseth
5000785ff8
Merge pull request #9822 from ethereum/fix-ice-on-returning-string-literal-in-calldata
Mark string literals as not implicitly convertible to calldata arrays
2020-09-16 14:23:47 +02:00
Alex Beregszaszi
a187a1c4c4
Merge pull request #9798 from ethereum/smt-log
[SMTChecker] Support events and low-level logs
2020-09-16 12:26:27 +01:00
Kamil Śliwak
3ba3bde65e Mark string literals as not implicitly convertible to calldata arrays 2020-09-16 12:44:57 +02:00
Alex Beregszaszi
c8c17b693b [SMTChecker] Support events and low-level logs 2020-09-16 11:50:39 +02:00
Kamil Śliwak
2916ae5bda Fix static arrays with dynamic elements not being treated as dynamic in FunctionType::returnParameterTypesWithoutDynamicTypes() 2020-09-16 11:15:52 +02:00
chriseth
b08b76ffca
Merge pull request #9776 from ethereum/reportUnimplemented
Sol->Yul: Report source locations related to unimplemented features.
2020-09-15 18:46:45 +02:00
chriseth
39ecc18d4d
Merge pull request #9812 from ethereum/develop
Merge develop into breaking.
2020-09-15 15:58:45 +02:00
chriseth
9bcc2f1713 Make ReasoningBasedSimplifier available as step. 2020-09-15 15:57:59 +02:00
chriseth
2d7e28769a Skip smt optimizer tests if smt is disabled. 2020-09-15 15:57:59 +02:00
chriseth
f73fb726af Reasoning based optimizer. 2020-09-15 15:57:58 +02:00
chriseth
2f41245e43 Commandline test for unimplemented IR. 2020-09-15 14:42:04 +02:00
chriseth
8c8c83a104 Adjust testing framework. 2020-09-15 14:41:46 +02:00
Alex Beregszaszi
5355e85639
Merge pull request #9782 from ethereum/smt-revert
[SMTChecker] Support revert()
2020-09-15 13:26:19 +01:00
chriseth
ff93d8ac6c
Merge pull request #9804 from ethereum/extractYulSyntaxTests
Extract (some) yul syntax tests.
2020-09-15 13:50:45 +02:00
chriseth
9eda69f637
Merge pull request #9793 from ethereum/same-syntax-test
[Trivial] Use same multi-source-syntax for test files
2020-09-15 13:49:34 +02:00
chriseth
74efd5ba46
Merge pull request #9703 from a3d4/fix-4558-shadowed-declaration-warning
Corrected warning for homonymous, but not shadowing declarations
2020-09-15 13:48:55 +02:00
Alex Beregszaszi
783d66c1a4 [SMTChecker] Support revert() 2020-09-15 11:46:33 +01:00
Alex Beregszaszi
8f36408ef9 Add test case for revert() in SMTChecker 2020-09-15 11:46:16 +01:00
Mathias Baumann
a1eb0f7225 Use same multi-source-syntax for test files 2020-09-15 12:44:02 +02:00
chriseth
768e0e96e4 Extract yul syntax tests. 2020-09-15 12:13:30 +02:00
chriseth
eac175c08b
Merge pull request #9053 from ethereum/generatedSources
Export generated sources
2020-09-15 12:08:47 +02:00
chriseth
33cdefc40e New test. 2020-09-15 11:22:43 +02:00
chriseth
7f0a86ce56 Remove version from combined-json. 2020-09-15 11:22:43 +02:00
chriseth
3f9f63b829 Test updates. 2020-09-15 11:22:16 +02:00
Daniel Kirchner
e93d74398b
Merge pull request #9807 from ethereum/smt_readd_tests
Readd SMTChecker tests
2020-09-15 02:57:42 +02:00
a3d4
4ca7655b74 Correct the warning for homonymous, but not shadowing declarations 2020-09-15 02:39:21 +02:00
Leonardo Alt
28c8e01149 Readd SMTChecker tests 2020-09-14 23:44:13 +02:00
Alex Beregszaszi
83934254ea [SMTChecker] Support type(I).interfaceId 2020-09-14 20:34:52 +01:00
chriseth
efe829b4b2
Merge pull request #9805 from ethereum/develop
Merge develop into breaking.
2020-09-14 20:48:03 +02:00
chriseth
552a5f0913
Merge pull request #9314 from ethereum/inlineStartingFromLeaves
Handle "leaf functions" first in full inliner.
2020-09-14 20:22:48 +02:00
chriseth
c6281f29d5
Merge pull request #9577 from ethereum/removeflag
Remove "removesNonConstant" flag.
2020-09-14 20:20:46 +02:00
chriseth
de51531366
Merge pull request #9791 from a3d4/refactor-collision-warnings
Refactor collision warnings
2020-09-14 20:19:53 +02:00
Leonardo Alt
fd6c665548 Update SMTChecker tests with z3 4.8.9 2020-09-14 19:04:13 +02:00
Harikrishnan Mulackal
b7944477a1 Update UnusedFunctionParameterPruner tests to avoid getting inlined 2020-09-14 17:59:50 +02:00
chriseth
8e39110a30 Remove flag. 2020-09-14 17:35:04 +02:00
Kamil Śliwak
ea1c249822 [yul-phaser] Chromosome: Use more samples and higher tolerance in tests checking the distribution
- This makes them run a second longer (which might seem small but it's a 3x increase).
- Hopefully they will break less when the random seed changes.
2020-09-14 16:17:39 +02:00
Kamil Śliwak
5637bdcaec [yul-phaser] Replace mutation tests with hard-coded expectations with more robust ones that check the statistical distribution
- The old tests would easily break when adding/removing optimiser steps.
2020-09-14 16:17:39 +02:00
Kamil Śliwak
d75f0ba437 [yul-phaser] Chromosome: Make it possible to use genes that do not correspond to existing optimiser steps 2020-09-14 16:17:39 +02:00
chriseth
fb205b719e
Merge pull request #9783 from ethereum/yul-phaser-fix-slow-tests-for-classic-algorithm
[yul-phaser] Fix slow tests for classic genetic algorithm
2020-09-14 16:16:59 +02:00
a3d4
d8520b0af0 Move collision warnings to StaticAnalyzer 2020-09-14 02:52:00 +02:00
a3d4
e7a6534d4f Unify collision warnings 2020-09-14 02:17:53 +02:00
Leonardo
31b5102aa0
Merge pull request #9731 from ethereum/smt_import
[SMTChecker] Fix CHC encoding
2020-09-12 00:56:04 +02:00
Alex Beregszaszi
961a199cf5 [SMTChecker] Support type(T).min and type(T).max 2020-09-11 21:37:51 +01:00
Kamil Śliwak
e024032a67 Revert "[yul-phaser] Temporarily disable very slow tests for the classic algorithm"
This reverts commit b23f7d8790.
2020-09-11 22:05:56 +02:00
Kamil Śliwak
952a9c6115 [yul-phaser] Chromosome: store step abbreviations instead of full names 2020-09-11 22:05:56 +02:00
Kamil Śliwak
2a707e7685 [yul-phaser] Chromosome: Add stepsToGenes() and genesToSteps() 2020-09-11 22:05:56 +02:00
Leonardo Alt
3fea11e1a9 Remove problematic test 2020-09-11 22:02:18 +02:00
Leonardo Alt
23ee011c56 [SMTChecker] Fix imports 2020-09-11 13:34:46 +02:00
Leonardo
72f8a753a9
Merge pull request #9586 from ethereum/scoper
Assign scopes as a separate step.
2020-09-11 10:45:54 +02:00
Leonardo Alt
84c707cd2a Adjust problematic SMTChecker tests 2020-09-10 19:32:17 +02:00
chriseth
42c26e0bf5 Inline tiny functions first. 2020-09-10 17:01:20 +02:00
chriseth
f102feaf09 Handle "leaf functions" first in full inliner. 2020-09-10 17:01:19 +02:00
chriseth
6101bdf7e2 Name simplifier. 2020-09-10 16:23:29 +02:00
Leonardo Alt
40197df104 [SMTChecker] Support shifts 2020-09-09 19:47:52 +02:00
chriseth
c966971fd3
Merge pull request #9770 from ethereum/smt_dot
[SMTChecker] Change warning message
2020-09-09 17:17:04 +02:00
chriseth
6508986077
Merge pull request #9768 from ethereum/move-event-syntax-tests-from-name-and-type-resolution
Group event-related syntax tests together
2020-09-09 16:57:30 +02:00
Leonardo Alt
00f6b303b1 [SMTChecker] Change warning message 2020-09-09 16:14:21 +02:00
Kamil Śliwak
6f41e83b48 Move most event-related syntax tests from nameAndTypeResolution/ to events/ 2020-09-09 14:53:46 +02:00
Kamil Śliwak
5e9dd67a0a FunctionType::canTakeArguments(): Use the correct index when comparing named parameter types 2020-09-09 14:45:58 +02:00
Alexander Arlt
23d9b1567e Add support for ewasm evmc vm. 2020-09-08 12:41:42 -05:00
chriseth
202332405f
Merge pull request #9760 from ethereum/sol2YulStorageArrayIndexAccessFix
[Sol->Yul] Fixing storage array index access
2020-09-08 16:33:54 +02:00
Djordje Mijovic
ec6d21cde2 [Sol->Yul] Fixing storage array index access 2020-09-08 16:02:56 +02:00
Mathias Baumann
b72fb1333b Adjust docs example to work with v0.8.0 2020-09-08 13:36:16 +02:00
Kamil Śliwak
41bcb97e36 Don't consider contracts implicitly convertible to the type of super
- `super` for all intents and purposes behaves like a type and should be a TypeType rather than ContractType. We have an issue to fix it but it's a breaking change. Until then let's at least not treat other contracts as convertible to the ContractType that `super` represents.
2020-09-08 00:29:44 +02:00
Alexander Arlt
df8bbeeb22 ViewPureChecker::reportMutability: don't check visibility on constructors. 2020-09-07 11:35:33 -05:00
Harikrishnan Mulackal
acec8f271d Type Checker: Disallow `virtual` for modifiers in libraries. 2020-09-07 11:17:38 +02:00
Leonardo Alt
69a7808838 Add new tests 2020-09-03 15:19:33 +02:00
Leonardo Alt
afcd44e77c Update current tests 2020-09-03 15:19:03 +02:00
Harikrishnan Mulackal
974e35d09c Tests and changelog 2020-09-03 13:15:38 +02:00
Harikrishnan Mulackal
e2fd41f097 Implemented UnusedFunctionArgumentPruner 2020-09-03 13:15:38 +02:00
chriseth
2934a1f037 Assign scopes as a separate step. 2020-09-02 20:45:33 +02:00
chriseth
3a48be546d
Merge pull request #9602 from ethereum/structMemToStorageSol2Yul
[Sol->Yul] Implementing various copying of structs
2020-09-02 13:50:46 +02:00
chriseth
23514c1749
Merge pull request #9724 from ethereum/superForYul
Implement ``super``.
2020-09-02 12:48:39 +02:00
Djordje Mijovic
a740cb619b Adding tests for copying structs with function pointers between storage and memory 2020-09-02 12:28:53 +02:00
Djordje Mijovic
23f6369a46 Implementing struct copying from calldata to storage 2020-09-02 12:28:53 +02:00
Djordje Mijovic
762e3f3cee [Sol->Yul] Implementing struct copying from calldata to storage 2020-09-02 12:28:53 +02:00
Djordje Mijovic
381784dd89 [Sol->Yul] Implementing struct copying from storage to memory 2020-09-02 12:28:53 +02:00
Djordje Mijovic
b89c863e11 [Sol->Yul] Implementing struct copying from memory to storage 2020-09-02 12:28:53 +02:00
chriseth
8f34ac472f Implement `super`. 2020-09-02 11:00:42 +02:00
Djordje Mijovic
e7a05324af Adding simple array copying tests 2020-09-02 09:39:28 +02:00
Leonardo
0d83977d5a
Merge pull request #9648 from ethereum/smt_refactor_predicates
[SMTChecker] Refactor CHC predicates
2020-09-01 20:38:47 +02:00
Leonardo Alt
49d3804de4 [SMTChecker] Fix rational number short circuit 2020-09-01 17:21:13 +02:00
Leonardo Alt
e23d96464b Adjust test 2020-09-01 16:10:12 +02:00
Leonardo Alt
016b9b83a8 Refactor predicates 2020-09-01 16:09:56 +02:00
Leonardo
6b38c64c84
Merge pull request #9709 from ethereum/smt_fix_tuple_3
[SMTChecker] Fix ICE on tuples of one element of tuple type
2020-09-01 10:47:36 +02:00
Leonardo
20b359e5c5
Merge pull request #9716 from ethereum/smt_fix_tuple_2
[SMTChecker] Fix ICE on tuple assignment
2020-09-01 10:44:34 +02:00
Leonardo
c9ca1d1814
Merge pull request #9706 from ethereum/smt_fix_tuple_lvalue
[SMTChecker] Fix unary operator on lvalue tuple
2020-09-01 10:37:24 +02:00
chriseth
f628fd3f03
Merge pull request #9655 from a3d4/fix-msvc-adl
Fix MSVC ADL
2020-09-01 10:35:11 +02:00
Leonardo Alt
238b8a929e [SMTChecker] Fix ICE on tuples of one element that actually have tuple type 2020-09-01 08:31:57 +02:00
Leonardo Alt
5cafbeebec [SMTChecker] Fix ICE on tuple assignment 2020-09-01 08:29:01 +02:00
Leonardo Alt
50e0ada77d [SMTChecker] Fix unary operator on lvalue tuple 2020-09-01 08:25:06 +02:00
a3d4
8faa5243b5 Fix MSVC ADL 2020-09-01 00:42:42 +02:00
chriseth
34543e5eab
Merge pull request #9692 from ethereum/smt_fix_pop
[SMTChecker] Fix soundness of array pop
2020-08-31 20:07:58 +02:00
chriseth
b3b1df6556
Merge pull request #9681 from ethereum/small-astjsontest-refactor
Refactor ASTJSONTest to reduce redundancy
2020-08-31 19:50:06 +02:00
chriseth
0203eea20e
Merge pull request #9649 from a3d4/improve-error-coverage-erorrecovery
Complete test coverage for errors related to parser error recovery
2020-08-31 18:33:19 +02:00
chriseth
8c8eca3ec2
Merge pull request #9701 from a3d4/fix-8885-update-test-expectations
Fix test expectation update
2020-08-31 13:39:11 +02:00
chriseth
7346165b6c
Merge pull request #9688 from ethereum/fix-9675
ossfuzz: Generate antlr4 runtime deps
2020-08-31 13:07:03 +02:00
a3d4
6336aa5aba Fix test expectation update 2020-08-31 12:50:18 +02:00
Leonardo Alt
8c05db88c0 [SMTChecker] Fix soundness of array pop 2020-08-31 12:11:33 +02:00
Alex Beregszaszi
7ef9591e64 Expose hex literal to the Yul parser
This allows nicer error messages.
2020-08-28 19:34:52 +01:00
Alex Beregszaszi
26a76c18d4 Add Yul syntax test for every Solidity keyword 2020-08-28 19:34:52 +01:00
Alex Beregszaszi
4366ede889 Introduce Leave as a keyword for Yul 2020-08-28 19:34:52 +01:00
Alex Beregszaszi
caa329066e Do not emit Solidity-only tokens in the Scanner for Yul
And simplfiy AsmParser greatly.
2020-08-28 19:34:52 +01:00
Alex Beregszaszi
bd7283ad22 Add scanner test for specially handled keywords in Yul 2020-08-28 19:34:52 +01:00
Alex Beregszaszi
a80e2c1462 Update tests for immutable variables 2020-08-28 19:06:34 +01:00
Alex Beregszaszi
56624af209
Merge pull request #9695 from ethereum/scanner-test
Add more scanner tests for hex and unicode literals
2020-08-28 18:19:22 +01:00
chriseth
20efba6b55
Merge pull request #9568 from ethereum/fixImmutables
Fix reads checks for complex assignment and increment/decrement for immutable variables.
2020-08-28 16:14:18 +02:00
Christian Parpart
cd3836f467 Fixes compilation on MSVC wrt. narrowing conversion from cstr-ptr to bool. 2020-08-28 15:54:47 +02:00
Alex Beregszaszi
aa70758c32 Add more scanner tests for hex and unicode literals 2020-08-28 14:33:29 +01:00
chriseth
8b564a7be7 Fix reads checks for immutable variables. 2020-08-28 15:24:40 +02:00
chriseth
ec3f3c41dd
Merge pull request #9690 from ethereum/immutable-rhs-vardecl
Disallow assigning more than once to immutables during the variable declaration
2020-08-28 14:39:23 +02:00
Leonardo
df79a4f162
Merge pull request #9691 from ethereum/oversized-function-array
Changed canonicalName() to toString() because of internal functions
2020-08-28 13:57:47 +02:00
Harikrishnan Mulackal
7ff809dc78 Disallow assigning more than once to immutables during the vardecl 2020-08-28 13:42:54 +02:00
Harikrishnan Mulackal
672f391660 Changed canonicalName() to toString() because of internal functions 2020-08-27 21:09:35 +02:00
Alex Beregszaszi
e872b1b51e
Merge pull request #9689 from ethereum/using-for-interface
Disallow ``using for`` directive for interfaces.
2020-08-27 19:09:19 +01:00
Bhargava Shastry
6101590d93 ossfuzz: Generate antlr4 runtime deps 2020-08-27 17:33:29 +02:00
chriseth
0798167f3d
Merge pull request #9612 from ethereum/yul-rightarrow
Introduce RightArrow (->) token
2020-08-27 16:21:18 +02:00
Harikrishnan Mulackal
c7dc42a794 Disallow `using for` directive for interfaces. 2020-08-27 15:57:51 +02:00
Mathias Baumann
c4962df262 Refactor ASTJSONTest to reduce redundancy 2020-08-27 15:56:41 +02:00
Harikrishnan Mulackal
7826564226 Fix infinite loop for structs in library function parameter 2020-08-27 14:18:07 +02:00
Harikrishnan Mulackal
1c066b1059 Allow type(Contract).name for abstract contracts and interfaces 2020-08-27 13:37:08 +02:00
Alex Beregszaszi
662f7d8fac Rename Arrow to DoubleArrow 2020-08-27 12:28:27 +01:00
Alex Beregszaszi
4e5b403c37 Introduce RightArrow (->) token in the scanner 2020-08-27 12:28:27 +01:00
chriseth
161ed4c948
Merge pull request #9683 from ethereum/fix-exp-neg-literal
Disallow the exponent to be a signed integer literal
2020-08-27 13:26:15 +02:00
Harikrishnan Mulackal
6f22899153 Disallow the exponent to be a signed integer literal 2020-08-27 12:08:45 +02:00
Harikrishnan Mulackal
79b2e41252 Fix inheritdoc tags trying to resolve 'empty' elements 2020-08-26 21:28:00 +02:00
Leonardo
fdc4142b2c
Merge pull request #9661 from ethereum/smtBitwiseOr
[SMTChecker] Support bitwise or, xor and not operator
2020-08-26 18:20:15 +02:00
chriseth
dbe0518cd2
Merge pull request #9652 from ethereum/iceInlineAssemblyOffset
[Sol->Yul] Enabling storage pointers to local vars in inline assembly.
2020-08-26 17:12:54 +02:00
chriseth
bc4e07d309
Merge pull request #9672 from ethereum/fixRecompilation
Fix inlining order to correspond to source order.
2020-08-26 16:39:03 +02:00
Djordje Mijovic
11a7763f49 [SMTChecker] Support bitwise or, xor and not. 2020-08-26 11:06:56 +02:00
Djordje Mijovic
d99b81ef02 [Sol->Yul] Enabling storage pointers to local vars in inline assembly. 2020-08-26 10:25:42 +02:00
chriseth
e72afcba47 Fix inlining order to correspond to source order. 2020-08-26 10:20:18 +02:00
chriseth
221524b153
Merge pull request #9606 from ethereum/newGrammar
Rewrite of the antlr grammar.
2020-08-26 09:57:13 +02:00
chriseth
21489d8193
Merge pull request #9638 from ethereum/fixNullValuesAST
Remove null values from AST also in standard-json mode.
2020-08-24 15:57:33 +02:00
Djordje Mijovic
00e765f478 Fix tests for conditional operator on latest develop. 2020-08-22 07:52:55 +02:00
Đorđe Mijović
4dd25f7302
Merge pull request #9639 from ethereum/smtConditionalSupport
[SMTChecker] Supporting conditional operator
2020-08-21 14:25:47 +02:00
Djordje Mijovic
3f97a1012a [SMTChecker] Supporting conditional operator 2020-08-20 21:39:35 +02:00
a3d4
0ee4a85a84 Complete test coverage for errors related to parser error recovery 2020-08-20 16:14:39 +02:00
chriseth
4a720a6511
Merge pull request #9646 from a3d4/improve-error-coverage-syntaxchecker
Improve error coverage of syntax checker
2020-08-20 13:18:35 +02:00
chriseth
4dc63875f9
Merge pull request #9113 from ethereum/smt_chc_overflow
[SMTChecker] Add underflow/overflow target to CHC
2020-08-20 13:17:00 +02:00
a3d4
ad311fae19 Improve error coverage of syntax checker 2020-08-20 03:23:21 +02:00
Daniel Kirchner
bd21535dd1 Rewrite of the antlr grammar. 2020-08-19 17:55:31 +02:00
chriseth
b2b8e0e4c6
Merge pull request #9312 from ethereum/rewrite-loopInvariantCodeMotion
Rewrite loop invariant code motion
2020-08-19 14:27:04 +02:00
Harikrishnan Mulackal
bbf15c9af3 Tests and Changelog 2020-08-19 12:41:29 +02:00
chriseth
7b8cc0c49b Remove null values from AST also in standard-json mode. 2020-08-19 11:06:14 +02:00
chriseth
a795e4db9b
Merge pull request #9640 from a3d4/improve-error-coverage-parser
Improve error coverage of parser
2020-08-19 11:03:50 +02:00
a3d4
0f5d0b6455 Improve error coverage of parser 2020-08-19 01:37:11 +02:00
chriseth
3c27d36ebd
Merge pull request #9283 from ethereum/refactor-sideEffects
Refactor SideEffects
2020-08-18 15:12:42 +02:00
Harikrishnan Mulackal
3cbe65e4f3 Refactor SideEffects struct 2020-08-18 14:53:59 +02:00
chriseth
17edf4f207
Merge pull request #9479 from ethereum/exp
Implement checked exponentiation.
2020-08-18 13:57:25 +02:00
chriseth
c34e349572 Implement checked exponentiation. 2020-08-18 12:42:53 +02:00
chriseth
2ff954ec2d Use kind in json AST for free function. 2020-08-18 11:46:59 +02:00
chriseth
e9f91edc4b Update existing tests. 2020-08-18 11:46:59 +02:00
chriseth
9324fb4f20 Free functions. 2020-08-18 11:46:59 +02:00
Harikrishnan Mulackal
58bfe0b0d2 Tests for refactor-SideEffects 2020-08-14 17:44:19 +02:00
Leonardo Alt
5afd1219f5 Add test with unused error id 2020-08-14 12:58:27 +02:00
Leonardo Alt
0a160b1ba0 Update remaining tests 2020-08-14 12:58:27 +02:00
Leonardo Alt
80ab56dbc6 Update overflow tests 2020-08-14 12:58:27 +02:00
Leonardo Alt
8a06041bbe [SMTChecker] Add underflow/overflow target to CHC 2020-08-14 12:58:27 +02:00
Alex Beregszaszi
babb175d86 Add more syntax tests for Yul 2020-08-13 14:20:52 +01:00
Daniel Kirchner
5d670aaa18
Merge pull request #9614 from ethereum/yul-hex
Update tests/documentation to show that hex literals are not supported in Yul
2020-08-13 03:11:45 +02:00
Alex Beregszaszi
b752551ebd Add test case for string literals in switch statements in Yul 2020-08-13 00:27:41 +01:00
Alex Beregszaszi
acb1e8c280 Add tests showing hex literals are not allowed in Yul 2020-08-13 00:27:19 +01:00
Alex Beregszaszi
bb29307b02 Add/Update tests for Yul function definition 2020-08-12 23:53:08 +01:00
Djordje Mijovic
d685bee2ec [Sol->Yul] Implementing struct copying from calldata to memory.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-08-11 16:18:06 +02:00
Leonardo Alt
ec31d971e6 [SMTChecker] Fix tuple name for arrays 2020-08-07 12:28:10 +02:00
Daniel Kirchner
9ca48987dd
Merge pull request #9520 from ethereum/interpreterLiteral
Fix literal arguments in interpreter.
2020-08-06 16:11:31 +02:00
Daniel Kirchner
143b37af56 Only conditionally run old code generation in CompilerStack, StandardCompiler and semantic tests. 2020-08-06 15:05:17 +02:00
chriseth
0226d104b7 Fix literal arguments in interpreter. 2020-08-06 14:16:59 +02:00
chriseth
3a409c39e4
Merge pull request #9518 from ethereum/smt_fix_bmc_function_inlining
[SMTChecker] Fix ICE in BMC function inlining
2020-08-06 00:50:04 +02:00
chriseth
ebd512cef6
Merge pull request #9576 from ethereum/test-cleanup
Rename libsolidity/SolidityScanner to liblangutil/Scanner in tests
2020-08-06 00:49:33 +02:00
chriseth
488fd5a27a
Merge pull request #9575 from ethereum/yul-optim-check
Parse optimiser output in yulOptimiserTests
2020-08-06 00:40:45 +02:00
Alex Beregszaszi
2e8616e2e4 Run prequisite steps for VarNameCleaner in tests 2020-08-05 22:12:51 +01:00
Alex Beregszaszi
0a8bc861b2 Remove old boost tests from libyul/ObjectParser 2020-08-05 21:01:46 +01:00
Alex Beregszaszi
291c359ee9 Add more syntax tests for Yul objects
Also move some of them from boost tests.
2020-08-05 21:01:46 +01:00
Alex Beregszaszi
e7c99918ed Use yul::test::parse in libyul/SynaxtTests to support objects 2020-08-05 18:10:21 +01:00
chriseth
98faf82d3f
Merge pull request #9563 from ethereum/constrInLib
Fix member lookup for constructor in library.
2020-08-05 19:07:28 +02:00
Alex Beregszaszi
99d96870ae Rename libsolidity/SolidityScanner to liblangutil/Scanner in tests 2020-08-05 13:39:18 +01:00
Alex Beregszaszi
42a777e9e2 Use forward declaration in EwasmTranslationTest 2020-08-05 13:31:51 +01:00
Alex Beregszaszi
dec0f86b83
Merge pull request #9542 from ethereum/smt_add_test
[SMTChecker] Add test from Aon blog post
2020-08-05 13:24:16 +01:00
Alex Beregszaszi
e77ae3f06e Parse optimiser output in yulOptimiserTests 2020-08-05 12:57:14 +01:00
Alex Beregszaszi
a21c8e18f1
Merge pull request #9572 from ethereum/yul-optimiser-tests
Return object format in expectation for yulOptimizerTests
2020-08-05 12:57:01 +01:00
Alex Beregszaszi
ad6f39376f Return object format in expectation for yulOptimizerTests 2020-08-05 11:55:13 +01:00
Alex Beregszaszi
6e381326fe Adjust and add more tests 2020-08-05 11:37:04 +01:00
Leonardo Alt
8df8c6e14f [SMTChecker] Fix ICE in BMC function inlining 2020-08-05 11:47:25 +02:00
chriseth
b8fd409f7f
Merge pull request #9566 from ethereum/byteAfterShrNonEight
Optimize byte-after-shr for shift amounts that are not multiples of 8.
2020-08-04 14:19:11 +02:00
chriseth
a3a9630d8b Optimize byte-after-shr for shift amounts that are not multiples of 8. 2020-08-04 12:16:23 +02:00
chriseth
0ea5aae9aa Require inheritdoc tag to be non-empty. 2020-08-04 12:13:23 +02:00
chriseth
c96e997a3c Fix member lookup for constructor in library. 2020-08-04 10:51:40 +02:00
Leonardo Alt
55624d6416 Add test from Aon blog post 2020-08-04 09:31:48 +02:00
Bhargava Shastry
5100effeec yul: Set non movable flag to true in simplification rule for byte of right-shifted expression 2020-08-03 17:30:52 +02:00
chriseth
cd2ce28317
Merge pull request #9547 from ethereum/useCBOR
Use cbor metadata in gas cost tests.
2020-07-28 23:59:14 +02:00
chriseth
b8b78a6982 Use cbor metadata in gas cost tests. 2020-07-28 23:42:22 +02:00
chriseth
9e5a56a649
Merge pull request #9526 from ethereum/scanner-split
Add ScannerKind and replace supportPeriodInIdentifier
2020-07-28 23:25:28 +02:00
chriseth
aea75d0f5b
Merge pull request #9513 from ethereum/smt_fix_fixed_bytes_access
[SMTChecker] Fix ICE on fixed bytes access
2020-07-28 23:24:04 +02:00
chriseth
73506e2858
Merge pull request #9530 from a3d4/improve-error-coverage-referenceresolver
Complete error coverage of ReferenceResolver
2020-07-28 21:12:54 +02:00
a3d4
ffdb0e37ff Complete error coverage of ReferenceResolver 2020-07-28 18:56:57 +02:00
a3d4
dbeacbafa5 Cover "Override changes modifier to public state variable." error 2020-07-28 18:55:12 +02:00
Leonardo Alt
ad1798b000 [SMTChecker] Fix ICE on fixed bytes access 2020-07-28 17:59:42 +02:00
Alex Beregszaszi
d9cb8c8c5e Add ScannerKind and replace supportPeriodInIdentifier 2020-07-28 12:31:08 +01:00
chriseth
655113e922
Merge pull request #9532 from ethereum/smt_fix_tests
Fix SMTChecker tests
2020-07-28 12:14:46 +02:00
Alex Beregszaszi
291c00c3de Remove errenous error duplication and move some tests around 2020-07-28 10:45:27 +01:00
chriseth
53d497fc31
Merge pull request #9412 from ethereum/unicode-string
[BREAKING] Support unicode string literal type
2020-07-28 11:42:23 +02:00
Leonardo Alt
a6df232fa3 Fix SMT tests 2020-07-28 11:24:25 +02:00
Alex Beregszaszi
0102d30b0a Add more tests to the scanner regarding dots in identifiers 2020-07-27 18:38:18 +01:00
chriseth
ee9a03ffe1
Merge pull request #9501 from ethereum/calldataToMemoryCopy
[Sol->Yul] Implementing bytes copying from calldata to memory.
2020-07-27 19:23:30 +02:00
chriseth
81cdc39f51
Merge pull request #9514 from ethereum/fixInterCon
Fix internal error for invalid data location in constructor.
2020-07-27 19:21:55 +02:00
Alex Beregszaszi
f5f86779b8 Update tests for unicode literals 2020-07-27 18:21:17 +01:00
Alex Beregszaszi
5bfcc1ffcc Update tests for string literals 2020-07-27 18:21:17 +01:00
chriseth
9605b85c21
Merge pull request #9352 from ethereum/smt_cex
[SMTChecker] CHC counterexamples
2020-07-27 19:21:04 +02:00
Leonardo Alt
b207222af7 Fix extra parens 2020-07-27 17:14:59 +02:00
Djordje Mijovic
96258c7e75 [Sol->Yul] Implementing bytes copying from calldata to memory. 2020-07-27 15:14:26 +02:00
chriseth
f24097c38d Fix internal error for invalid data location in constructor. 2020-07-27 15:00:17 +02:00
Leonardo Alt
de4ae301c4 [SMTChecker] Fix ICE when tuples have extra effectless parens 2020-07-27 13:03:27 +02:00
chriseth
5812cd8213
Merge pull request #9511 from ethereum/ast-hex-string
[BREAKING] Distinguish between stringLiteral and hexStringLiteral in the JSON AST
2020-07-27 12:34:40 +02:00
Alex Beregszaszi
5ecc84e92e Distinguish between stringLiteral and hexStringLiteral in the JSON AST 2020-07-27 10:19:24 +01:00
chriseth
2c574af45b Fix conversion bug for exp operation. 2020-07-27 10:44:42 +02:00
chriseth
1a1960ede0
Merge pull request #9466 from ethereum/fixTokens
Properly sort token list.
2020-07-27 10:42:31 +02:00
chriseth
7ff3d10fee
Merge pull request #9492 from ethereum/someValueTests
Some more tests for value.
2020-07-23 19:09:28 +02:00
Leonardo Alt
95484d9969 Fix tests after rebase 2020-07-23 18:49:03 +02:00
Leonardo Alt
d70ebbb62d Remove problematic test 2020-07-23 18:49:03 +02:00
Leonardo Alt
5bb4e73693 Review 1 2020-07-23 18:49:03 +02:00
Leonardo Alt
003c9b9a5b Update tests 2020-07-23 18:49:03 +02:00
chriseth
80d704891c
Merge pull request #9493 from ethereum/fix-gnosis
Force upgrade package-lock
2020-07-23 18:00:12 +02:00
chriseth
8607bfdfaa
Merge pull request #9007 from a3d4/fix-8727-no-return-optimizer-error
Report an error if immutables not assigned
2020-07-23 16:50:42 +02:00
chriseth
95c8f41ddf
Merge pull request #9489 from ethereum/fixStackLit
Fix handling of long literal arguments in the stack compressor.
2020-07-23 16:49:39 +02:00
a3d4
5b54cfbed3 Report an error if immutables not assigned 2020-07-23 16:38:54 +02:00
Harikrishnan Mulackal
bde0728b9b Force upgrade package-lock 2020-07-23 20:05:14 +05:30
chriseth
336fe94422
Merge pull request #9426 from ethereum/smt_fix_1_tuple
[SMTChecker] Fix ICE in 1-tuple chain
2020-07-23 15:38:17 +02:00
chriseth
4f611fbf17 Some more tests for value. 2020-07-23 14:57:47 +02:00
chriseth
a1da90d14b Adding more tests for function types 2020-07-23 14:55:32 +02:00
Djordje Mijovic
e7d5a7da10 [TypeChecker] Remove function input and return parameter names from mobileType 2020-07-23 14:39:49 +02:00
chriseth
8cfbe02cc0 Fix token list. 2020-07-23 14:28:28 +02:00
chriseth
fc34c81f4c Test for long object names in optimizer. 2020-07-23 14:03:51 +02:00
Leonardo Alt
9d2a0947e9 Fix 1-tuple chain 2020-07-23 13:46:41 +02:00
chriseth
845c1ae91f
Merge pull request #9469 from ethereum/fix-9468
Yul fuzzer: Enable nested object references
2020-07-23 13:26:42 +02:00
chriseth
6bb6783d39 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-22 15:26:44 +02:00
Bhargava Shastry
115380ca76 Yul fuzzer: Enable nested object references
Co-authored-by: Đorđe Mijović <djordje.mijovic@gmail.com>
2020-07-22 14:02:41 +02:00
chriseth
0dc111bac9
Merge pull request #9463 from a3d4/improve-error-coverage-only-one-receive
Add "Only one receive function is allowed"-error to syntax tests
2020-07-22 10:40:49 +02:00
chriseth
8339ee4122
Merge pull request #9423 from ethereum/runtimeCodeSol2Yul
[Sol->Yul] Supporting .runtimeCode
2020-07-22 09:51:07 +02:00
chriseth
cb1f7a8410
Merge pull request #9235 from ethereum/yulSubObjectAccessWithDot
Yul sub object access with dot
2020-07-22 09:50:41 +02:00
a3d4
7e0a291fac Add "Only one receive function is allowed"-error to syntax tests 2020-07-22 04:09:24 +02:00
Djordje Mijovic
546e9af24d [Sol->Yul] Supporting .runtimeCode 2020-07-21 17:56:37 +02:00
Djordje Mijovic
6f97e6153c [yul] Adding support for accessing subobjects via .
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-21 17:56:11 +02:00
Bhargava Shastry
18fbbfa5ca Fuzzer: Count step by number of interpreted statements
Co-authored-by: chriseth <chris@ethereum.org>
2020-07-21 15:38:02 +02:00
chriseth
8b7567f963 Fix merge conflicts. 2020-07-21 15:06:57 +02:00
Bhargava Shastry
4067bab7dd Add corpus based multi source fuzzer
Co-authored-by: Leonardo <leo@ethereum.org>
2020-07-21 13:43:29 +02:00
chriseth
e19e4d9db1
Merge pull request #9451 from ethereum/smt_fix_push_push
[SMTChecker] Fix push().push()
2020-07-21 11:40:37 +02:00
chriseth
9be5ed1220 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-21 11:35:28 +02:00
a3d4
ecdfef1b30 Replace grave accent with acute accent 2020-07-21 00:18:47 +02:00
chriseth
e7f26c2320
Merge pull request #9218 from ethereum/issue-8911
Natspec: Implement inheritance and @inheritdoc
2020-07-20 18:44:13 +02:00
chriseth
10f93fbd8a
Merge pull request #9428 from ethereum/removeVar
Remove special treatment of ``var``.
2020-07-20 18:43:44 +02:00
chriseth
2c7359de1e
Merge pull request #9394 from ethereum/fix-9391
Yul interpreter: Return addresses of type u160 for create and create2…
2020-07-20 18:38:43 +02:00
Mathias Baumann
ba0a4de50d NatSpec: Implement `@inheritdoc` 2020-07-20 18:32:18 +02:00
chriseth
93c792c696 Remove special treatment of `var`. 2020-07-20 17:22:04 +02:00
Leonardo Alt
2c93278719 Fix push().push() 2020-07-20 17:17:35 +02:00
chriseth
8bdd93f4b8 Update tests. 2020-07-20 17:17:19 +02:00
chriseth
50a54fa8aa Implement inline arrays. 2020-07-20 17:06:32 +02:00
chriseth
ac95e98b2b
Merge pull request #9449 from ethereum/fixEnforceViaYul
Fix enforce via yul
2020-07-20 17:01:42 +02:00
chriseth
1c9179683e
Merge pull request #9433 from ethereum/reportAllStackErrors
Report all stack errors
2020-07-20 15:44:51 +02:00
chriseth
0a25370eeb Update tests. 2020-07-20 15:40:58 +02:00
Mathias Baumann
446d15488c Update tests for new public var override rules 2020-07-20 15:18:23 +02:00
chriseth
c8772a54c3 Constants are considered pure. 2020-07-20 15:18:23 +02:00
chriseth
d3647b13e4 Disallow public state variables overriding pure functions. 2020-07-20 15:18:23 +02:00
Mathias L. Baumann
69a596b0ff
Merge pull request #9418 from ethereum/stateMutForOverride
Issue state mutability restriction for overriding and not for virtual functions.
2020-07-20 15:01:25 +02:00
chriseth
53bc0ff18e Fix "enforce via yul". 2020-07-20 14:52:31 +02:00
Bhargava Shastry
deffb7ffc8 Yul interpreter: Return addresses of type u160 for create and create2 calls 2020-07-20 11:26:47 +02:00
Sachin Grover
b7adb2aa42 Add SPDX license identifier if not present already in source file
Fixes: #9220
2020-07-17 20:24:12 +05:30
Leonardo Alt
2e1067a05a Set type properly for event parameters 2020-07-17 11:17:27 +02:00
chriseth
ba21d26f88
Merge pull request #9344 from ethereum/issue-3412
Allow overrides to have a more strict mutability than super
2020-07-16 18:50:51 +02:00
Mathias Baumann
dfffecfe2c Allow overrides to have a more strict mutability than super 2020-07-16 17:55:12 +02:00
Leonardo Alt
672633af0a [SMTChecker] Fix ICE on compound assignment to array index 2020-07-16 17:44:10 +02:00
Daniel Kirchner
579e4b5a69 Report all stack errors in the EVM code transform. 2020-07-16 17:38:04 +02:00
chriseth
aa3f51ab47 Issue state mutability restriction for overriding and not for virtual functions. 2020-07-16 17:19:35 +02:00
chriseth
f945163909
Merge pull request #9432 from ethereum/develop
Merge develop into breaking.
2020-07-16 17:14:45 +02:00
Mathias Baumann
d3af598c49 CodeGen: Avoid double cleanup when copying to memory 2020-07-16 13:53:48 +02:00
Mathias Baumann
f47981d484 Prepare testcase for avoiding double cleanup 2020-07-16 13:53:46 +02:00
Leonardo Alt
46653b2d43 Fix ICE when bitwise operator on fixed bytes 2020-07-15 19:32:15 +02:00
chriseth
dca85a286d
Merge pull request #9398 from ethereum/eip615
Prefix EIP-615 opcodes with EIP615 in Instructions
2020-07-14 19:18:02 +02:00
Alex Beregszaszi
eab12ecf77 Nicer error message for private payable functions 2020-07-14 14:38:12 +01:00
chriseth
526e7b878b
Merge pull request #9403 from ethereum/string-tests
Add more tests for strings with unicode (escapes)
2020-07-14 13:49:06 +02:00
chriseth
f93932c259
Merge pull request #9406 from ethereum/fixSegfault
Fix segfault in oversized objects check in combination with var.
2020-07-14 13:30:33 +02:00
Daniel Kirchner
874f4d5447
Merge pull request #9407 from ethereum/refactorStorageSizeUpperBound
Refactor storageSizeUpperBound.
2020-07-14 12:17:45 +02:00
Daniel Kirchner
9c62ea182d Fix segfault in oversized objects check in combination with var. 2020-07-14 11:23:39 +02:00
chriseth
f28bede34a Refactor storageSizeUpperBound. 2020-07-14 10:45:02 +02:00
Harikrishnan Mulackal
f73b25bb78 Removed specialized errors related to constant state mutability 2020-07-14 12:42:47 +05:30
Alex Beregszaszi
950612cf42 Add more tests for strings with unicode (escapes) 2020-07-13 20:43:30 +01:00
Alex Beregszaszi
6a1ad7e59c Fix formatting hex strings in isoltest update 2020-07-13 19:06:16 +01:00
Alex Beregszaszi
870ea98c21 Prefix EIP-615 opcodes with EIP615 in Instructions 2020-07-13 17:34:19 +01:00
chriseth
289fc7a9d0
Merge pull request #9371 from ethereum/refactorInterpreter
Refactor yul interpreter.
2020-07-13 18:27:47 +02:00
Daniel Kirchner
41710acbca More semantic tests. 2020-07-13 18:07:11 +02:00
Daniel Kirchner
c3e13b6733 Promote gwei to a proper keyword. 2020-07-13 18:07:11 +02:00
Daniel Kirchner
38c6ecbbe2 Remove finney and szabo denominations. 2020-07-13 18:07:10 +02:00
chriseth
cf189a3285
Merge pull request #9285 from ethereum/no_dot_in_asm
[BREAKING] Change _slot and _offset to use dot in inline assembly
2020-07-13 17:46:39 +02:00
Daniel Kirchner
def0ebbb3e Free variables directly after visiting RHS of Variable Declarations during EVMCodeTransform. 2020-07-13 17:36:15 +02:00
chriseth
414e3bd6fe
Merge pull request #9387 from ethereum/swapDup
Remove swap after dup.
2020-07-13 17:27:43 +02:00
chriseth
12f390a60a
Merge pull request #9326 from ethereum/eventOverwriting
[BREAKING] Disallow multiple events with same name and types.
2020-07-13 15:44:35 +02:00
chriseth
080f33a72c Remove swap after dup. 2020-07-13 15:05:01 +02:00
chriseth
1d666335f8
Merge pull request #9367 from ethereum/wasm-dialect
Add ctz and popcnt to WasmDialect
2020-07-13 15:02:34 +02:00
chriseth
fc2e9ec2ff Use .slot and .offest to access storage items. 2020-07-13 14:59:22 +02:00
chriseth
8eee3ed3a2
Merge pull request #9388 from ethereum/develop
Merge develop into breaking.
2020-07-13 14:55:21 +02:00
Djordje Mijovic
a72b0deea6 Disabling -Wsign-conversion for yul_proto_diff_custom_mutate_ossfuzz target 2020-07-13 14:01:53 +02:00
Alex Beregszaszi
8df4baac42 Implement ctz/popcnt in yulInterpreter 2020-07-13 11:18:10 +01:00
chriseth
c90d3a3558
Merge pull request #9384 from ethereum/yul-err-typo
Fix missing quote in error message for invalid Yul types
2020-07-13 11:28:55 +02:00
chriseth
b3566ad0d5
Merge pull request #9082 from ethereum/conversionWarnings
Adding `-Wsign-conversion` flag and fixing errors
2020-07-13 11:28:09 +02:00
chriseth
ab2f64f442 Disallow multiple events with same name and types. 2020-07-13 11:24:37 +02:00
Daniel Kirchner
c8f25142a7 Add nooptions label to smt checks. 2020-07-11 20:17:12 +02:00
Alex Beregszaszi
20dd66f398 Fix missing quote in error message for invalid Yul types 2020-07-10 21:06:09 +01:00
Daniel Kirchner
65ed93d99f
Merge pull request #9366 from ethereum/wasm-clz
Fix yulInterpreter to correctly handle i32.clz
2020-07-10 20:36:24 +02:00
Alex Beregszaszi
f5ae9c5761 Fix yulInterpreter to correctly handle i32.clz 2020-07-10 15:38:25 +01:00
a3d4
efc5ee207d Fix internal compiler error caused by oversized objects 2020-07-10 11:39:07 +02:00
Djordje Mijovic
3781ee6349 Removing -Wsign-conversion flag for ossfuzz targets 2020-07-09 17:22:52 +02:00
Djordje Mijovic
547590b972 Fixing additional signedness errors after adding -Wsign-conversion flag
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-09 17:22:45 +02:00
Mathias Baumann
6b37f1c025 Remove visiblity of libraries in inherited contracts. 2020-07-09 16:38:29 +02:00
chriseth
82b66c7687
Merge pull request #9372 from a3d4/improve-error-coverage-cmdlinetests
Cover cmdlineTests.sh errors
2020-07-09 16:17:00 +02:00
chriseth
9ef050af9a
Merge pull request #9373 from ethereum/develop
Merge develop into breaking.
2020-07-09 16:15:43 +02:00
chriseth
2b94ced65f
Merge pull request #8305 from ethereum/fix-7947
yul proto fuzzer: Use custom mutation routines
2020-07-09 15:40:16 +02:00
chriseth
8b52985744
Merge pull request #9357 from ethereum/fix-9356
Disable more than one reference to a variable on the LHS of a tuple a…
2020-07-09 15:27:04 +02:00
chriseth
3cf5ed9514 Use plain strings for comparison. 2020-07-09 15:00:13 +02:00
chriseth
ec2393d3b6 Refactor interpreter. 2020-07-09 15:00:13 +02:00
a3d4
a068583bec Cover cmdlineTests.sh errors 2020-07-09 14:39:05 +02:00
Bhargava Shastry
7272129354 yul fuzzer: Add framework for yul optimizer custom mutation routines
Co-authored-by: Leonardo <leo@ethereum.org>
2020-07-09 13:32:07 +02:00
chriseth
f3e100a000
Merge pull request #9359 from ethereum/doNotRunAllTests
Do not run tests that do not need options multiple times.
2020-07-08 22:19:46 +02:00
chriseth
59f4989966 Optimize combination of byte and shl. 2020-07-08 20:26:46 +02:00
chriseth
ecc4bf2464
Merge pull request #9354 from ethereum/improveTestSpeed
Improve testing speed by only enabling the Yul optimizer if needed.
2020-07-08 19:54:32 +02:00
chriseth
8eb459c825 Disallow dot in inline assembly identifiers. 2020-07-08 19:29:58 +02:00
chriseth
d4ecd33247 Propagate function call argument types across function call options. 2020-07-08 17:59:02 +01:00
chriseth
83337c850e Do not run tests that do not need options multiple times. 2020-07-08 18:47:14 +02:00
chriseth
0c7e4cf16b
Merge pull request #9340 from ethereum/compileTimeSha
Evaluate keccak256 of string literals at compile-time.
2020-07-08 18:42:38 +02:00
chriseth
19ec9ecbfd
Merge pull request #9347 from ethereum/moretests
Add create & delete array tests for yul
2020-07-08 18:09:57 +02:00
chriseth
0a0f578d7c Evaluate keccak256 of string literals at compile-time. 2020-07-08 16:14:14 +02:00
Bhargava Shastry
48ac4b2954 Disable more than one reference to a variable on the LHS of a tuple assignment 2020-07-08 13:16:07 +02:00
Mathias Baumann
f9d6fa71fd Add create & delete array tests for yul 2020-07-08 13:10:33 +02:00
chriseth
5ebf2b84ef Improve testing speed by only enabling the Yul optimizer if needed. 2020-07-08 10:51:42 +02:00
chriseth
64b6524bdb Merge remote-tracking branch 'origin/develop' into breaking 2020-07-08 09:37:14 +02:00
Kamil Śliwak
b23f7d8790 [yul-phaser] Temporarily disable very slow tests for the classic algorithm 2020-07-07 17:14:57 +02:00
chriseth
41e1e34211
Merge pull request #9180 from ethereum/noVisibilityForConstructor
[BREAKING] No visibility for constructor
2020-07-07 16:26:41 +02:00
Alex Beregszaszi
0bd6fb027b Update tests 2020-07-07 13:13:58 +01:00
chriseth
ec8be81258
Merge pull request #9243 from ethereum/jumpTypesForYul
Jump types for yul functions.
2020-07-07 12:21:14 +02:00
chriseth
552d353430 New tests. 2020-07-07 12:16:18 +02:00
chriseth
5959d442cb Make visibility optional, but it has to be consistent. 2020-07-07 12:16:18 +02:00
chriseth
9743390a53 Update tests. 2020-07-07 12:16:18 +02:00
Alex Beregszaszi
beb4b1d563 Fix tests on breaking 2020-07-07 10:17:58 +01:00
chriseth
d72aae20aa
Merge pull request #9321 from ethereum/multiYulAssign
Disallow the same yul variable occurring multiple times on the LHS of an assignment.
2020-07-07 11:07:05 +02:00
chriseth
2e9933b0de
Merge pull request #9320 from ethereum/tests_for_memory_in_external.sol
Tests for memory in external functions.
2020-07-07 11:05:50 +02:00
Daniel Kirchner
70615a73a4 Disallow the same yul variable occurring multiple times on the LHS of an assignment. 2020-07-07 10:52:47 +02:00
chriseth
e48d3e5847 Fix wording of error message. 2020-07-06 19:22:52 +02:00
chriseth
982a269b2b
Merge pull request #9325 from ethereum/develop
Merge develop into breaking.
2020-07-06 19:11:02 +02:00
chriseth
a09a791999
Merge pull request #9313 from ethereum/doesnt
[Trivial] Replace "doesn't" with "does not" in error message
2020-07-06 18:21:02 +02:00
chriseth
4d2b9cd38f Jump types for yul functions. 2020-07-06 18:12:54 +02:00
chriseth
9009335b3f
Merge pull request #9319 from ethereum/noCalldataForConstructor
Constructors cannot have calldata parameters.
2020-07-06 17:58:23 +02:00
chriseth
c0adf2bb4c Tests for memory in external functions. 2020-07-06 17:08:24 +02:00
chriseth
f372ba6fea Constructors cannot have calldata parameters. 2020-07-06 16:52:51 +02:00
Alex Beregszaszi
60d4b1e8cc Rename drop to i64.drop in WasmDialect
Also properly implement support for both i32.drop and i64.drop in BinaryTransform, TextTransform, and YulInterpreter
2020-07-06 15:47:17 +01:00
chriseth
375cb09341
Merge pull request #9316 from ethereum/yul-cleanup-evm
Tiny cleanups to EVMDialect in Yul
2020-07-06 16:14:24 +02:00
chriseth
083ef2d685
Merge pull request #9311 from a3d4/improve-large-variable-size-warning
Add variable name to the "Variable covers ...." warning
2020-07-06 15:31:33 +02:00
chriseth
ab68406006 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-06 15:25:25 +02:00
a3d4
5e4aeaa460 Add variable name to the "Variable covers a large part of storage ...." message 2020-07-06 13:49:09 +02:00
Mathias Baumann
8cdf14f1b3 Replace "doesn't" with "does not" in error message 2020-07-06 13:44:33 +02:00
Alex Beregszaszi
f0d256bfdb Add test case for jumpi in inline assembly 2020-07-06 10:41:35 +01:00
Daniel Kirchner
b9b24daa8a
Merge pull request #9295 from ethereum/requireFLIR
Require for loop init rewriter for SSA.
2020-07-04 17:51:57 +02:00
chriseth
711ed588d7 Require for loop init rewriter for SSA.
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-07-03 19:24:31 +02:00
Alex Beregszaszi
0ac039e4ea
Merge pull request #9305 from ethereum/yul-dot-tests
Add Yul syntax tests for dots in identifiers
2020-07-03 18:18:58 +01:00
Alex Beregszaszi
889131321a
Merge pull request #9298 from ethereum/yul-evm-version-tests
Use different error code for various EVM features in Yul
2020-07-03 17:05:01 +01:00
a3d4
46bcac58eb
Merge pull request #9187 from a3d4/fix-storagesizeestimate
Fixed recursive check in structureSizeEstimate
2020-07-03 17:35:11 +02:00
Alex Beregszaszi
8b53f85e28 Add Yul syntax tests for dots in identifiers 2020-07-03 15:41:09 +01:00
a3d4
1c7a0dcbea Add warnings for oversized subtypes 2020-07-03 15:18:02 +02:00
Alex Beregszaszi
9a94b89c48 Update and add new tests for features of different EVM version 2020-07-03 14:08:09 +01:00
Daniel Kirchner
c0ee566049
Merge pull request #9293 from ethereum/yul-restrict-linkersymbol-to-object-dialect
[Yul] Restrict `linkersymbol` to object dialect and add missing changelog entries
2020-07-03 11:37:21 +02:00
chriseth
3d96e2b11a
Merge pull request #9257 from ethereum/yul-in-memory-struct-creation
Yul: Implement memory struct allocation
2020-07-02 17:03:46 +02:00
Mathias Baumann
50373ac1b0 Yul: Implement memory struct allocation 2020-07-02 16:37:20 +02:00
Kamil Śliwak
356b9a7904 Restrict linkersymbol builtin to object dialect of Yul 2020-07-02 14:41:40 +02:00
a3d4
c2e1273ff4 Fixed recursive check in structureSizeEstimate 2020-07-02 04:14:58 +02:00
Leonardo Alt
5517e817d5 Do not trust code of external functions 2020-07-01 18:20:46 +02:00
Leonardo Alt
5160f89c1b [SMTChecker] Support to external calls to unknown code 2020-07-01 18:20:33 +02:00
chriseth
1ec1166a27
Merge pull request #9277 from a3d4/improve-docstringparser-error-coverage
Add a missing DocStringParser error to tests
2020-07-01 18:17:09 +02:00
chriseth
3d602b3190
Merge pull request #9271 from ethereum/sloadKnowledge
[Yul Optimizer] Make DataFlowAnalyzer aware of storage / memory slot after sload / mload
2020-07-01 13:46:10 +02:00