Commit Graph

4601 Commits

Author SHA1 Message Date
Djordje Mijovic
e73fe17277 Fixing ICE on calling externally a function that returns calldata pointers
Co-authored-by: chriseth <chris@ethereum.org>
2020-06-10 14:41:45 +02:00
a3d4
51e64fe0b1 Add error IDs to console output 2020-06-10 13:27:25 +02:00
a3d4
b17915a6ba Add error IDs to JSON 2020-06-10 13:26:51 +02:00
chriseth
6b3171c38b Merge remote-tracking branch 'origin/develop' into breaking 2020-06-10 11:30:50 +02:00
Djordje Mijovic
c6e4943089 Adding fixes for signedness warnings in libsolidity
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-06-10 10:41:55 +02:00
chriseth
81f54a170b Cleanup from storage. 2020-06-09 14:57:04 +02:00
Harikrishnan Mulackal
d8263d331e Ignore warnings for yulOptimizer tests 2020-06-09 13:03:57 +02:00
Harikrishnan Mulackal
73e634924e Warn on YUL switch statement with only default statement 2020-06-09 12:32:53 +02:00
chriseth
2724ce9511 Index access to fixed bytes and byte arrays. 2020-06-09 10:50:28 +02:00
Leonardo
1e8e0ebd13
Merge pull request #9140 from ethereum/wasm-binary-fix-memory-immediate-alignment
Fix wrong alignment for Wasm store/load with 8-, 16- and 32-bit arguments
2020-06-09 10:42:21 +02:00
Leonardo Alt
f49e2424b2 [SMTChecker] Erase knowledge when array variable is pushed 2020-06-08 10:23:06 +02:00
Kamil Śliwak
fe0a0802b2 wasm/BinaryTransform: Fix wrong alignment for .load/.store with arguments smaller than 64-bits 2020-06-06 00:00:46 +02:00
Kamil Śliwak
976a0f9395 wasm/BinaryTransform: Don't add an empty local entry in binary wasm if there are no locals 2020-06-05 21:03:06 +02:00
Leonardo
d243f5baac
Merge pull request #9045 from ethereum/smt_fix_tuple
[SMTChecker] Fix internal error in tuples of tuples.
2020-06-05 14:21:32 +02:00
Leonardo
731e6466a0
Merge pull request #9067 from ethereum/smt_fix_fp_again
[SMTChecker] Fix BMC targets with FP
2020-06-05 12:39:28 +02:00
Daniel Kirchner
0fed2518fc
Merge pull request #9115 from ethereum/moreTestsForGetters
More tests for getters.
2020-06-05 12:34:47 +02:00
Leonardo Alt
87ceb72b82 [SMTChecker] Fix internal error in tuples of tuples. 2020-06-05 12:20:47 +02:00
Djordje Mijovic
9b3d1c11ff yul-phaser: A few more tweaks to ensure that signedness conversions do not cause warnings
- Don't cast booleans to int when the result gets assigned to an unsigned type. Relace them with ifs.
- Use unsigned initializer for a variable declared in a lambda capture.
- Unsigned abs() of a difference of unsigned values.
2020-06-04 17:18:07 +02:00
Djordje Mijovic
a49a127627 yul-phaser: Use ptrdiff_t for iterator arithmetic 2020-06-04 17:17:40 +02:00
chriseth
f97b376f7e
Merge pull request #9040 from ethereum/yulproto-remove-pc
ossfuzz: Remove PC from yul proto specification
2020-06-04 10:19:26 +02:00
chriseth
259292c884
Merge pull request #9118 from ethereum/develop
Merge develop into breaking.
2020-06-04 10:18:46 +02:00
chriseth
010a2246c7 More tests for getters. 2020-06-03 21:47:24 +02:00
chriseth
6b5f83cdfa
Merge pull request #9058 from ethereum/memberAccessSolYul
[Sol->Yul] Member access for structs.
2020-06-03 21:19:49 +02:00
chriseth
f38e3a3574
Merge pull request #9056 from ethereum/solYulGetters
[Sol->Yul] Implement getters.
2020-06-03 19:08:15 +02:00
chriseth
59fc88ca17
Merge pull request #9092 from ethereum/libEvmasmConversionWarnings
Fixing signedness conversion warnings in libevmasm
2020-06-03 18:46:49 +02:00
chriseth
5024985708
Merge pull request #9074 from ethereum/commandline-fix-wasm-crash-if-no-dialect
Fix ICE when selecting assembly variant with no Ewasm translation
2020-06-03 14:24:41 +02:00
chriseth
d12db7ec52
Merge pull request #8994 from ethereum/fixInvertedBinaryOp
Fix type inversion for shift and exp operators.
2020-06-03 14:11:16 +02:00
chriseth
1f49edd29d
Merge pull request #9039 from ethereum/yul-remove-pc-instr
[Yul] remove PC instruction
2020-06-03 14:10:35 +02:00
Mathias Baumann
6f8b5fe53b Disallow override with non-public state variables 2020-06-03 14:03:26 +02:00
chriseth
c8b9d24eba
Merge pull request #9106 from ethereum/develop
Merge develop into breaking.
2020-06-03 13:51:28 +02:00
chriseth
a6c773bd96 Fix type inversion for shift and exp operators. 2020-06-03 13:46:26 +02:00
Djordje Mijovic
e4e3f49844 Fixing signedness conversion warnings in libevmasm
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-06-03 13:25:43 +02:00
Christian Parpart
9820df58ab Remove Yul instruction PC and adapt tests accordingly. 2020-06-03 12:49:23 +02:00
Christian Parpart
c708a1bec2 AsmAnalysis: Fixes a superfluous whitespace in an error string 2020-06-03 12:23:06 +02:00
chriseth
849b16babb
Merge pull request #9095 from ethereum/conversionWarningsLibSolUtil
Adding fixes for signedness warnings in libsolutil
2020-06-03 11:10:54 +02:00
chriseth
ebf5a8702f
Merge pull request #9078 from a3d4/fix-tabs-in-formatter
Fix tabs in SolcReferenceFormatterHuman
2020-06-03 11:07:39 +02:00
chriseth
e7f3c042b6 Struct member access for storage and memory. 2020-06-03 10:37:39 +02:00
Djordje Mijovic
4b6c322279 Fixing various signedness warnings 2020-06-03 10:37:18 +02:00
chriseth
37e8d78cff [Sol->Yul] Implement getters. 2020-06-03 10:33:37 +02:00
a3d4
41d8420718 Fix tabs in SolcReferenceFormatterHuman 2020-06-02 21:43:51 +02:00
Leonardo
96ce4abe0e
Merge pull request #9069 from ethereum/smt_try
[SMTChecker] Fix internal error on try/catch
2020-06-02 21:09:49 +02:00
chriseth
8ab8d5b1b0 Do not try compiling via yul if explicitly forbidden. 2020-06-02 19:55:33 +02:00
Djordje Mijovic
b4454c4925 Adding fixes for signedness warnings in libsolutil 2020-06-02 19:01:29 +02:00
chriseth
c07254f5ac
Merge pull request #9055 from ethereum/issue-8881
Output error when forward referencing constants in inline assembly
2020-06-02 17:10:56 +02:00
chriseth
837e29fff8
Merge pull request #9084 from ethereum/remove-dead-code-from-execution-framework
Remove dead code from SolidityExecutionFramework::compileContract()
2020-06-02 17:00:27 +02:00
chriseth
e9212149f5
Merge pull request #9098 from ethereum/conversionWarningsYulInterpreter
Adding fixes for signedness warnings in test/tools/yulInterpreter
2020-06-02 16:55:40 +02:00
Leonardo Alt
10162016ae [SMTChecker] Fix internal error on try/catch 2020-06-02 16:51:53 +02:00
chriseth
9c92562e28
Merge pull request #9059 from ssi91/refactor-interactive-tests
Refactor interactive tests
2020-06-02 16:50:31 +02:00
Djordje Mijovic
1ee6c49028 Adding fixes for signedness warnings in test/tools/yulInterpreter 2020-06-02 16:35:41 +02:00
ssi91
79407c87fb remove extra definition of printIndented
add CommonBaseTestCase class and inherit some of TestCase classes from it. Since that, remove print source extra definitions

create the base defifnition for printUpdatedExpectations and remove extra definitions of the method

make CommonBaseTestCase c-tor explicit

include AnsiColorized.h and sort includes

implement a common result checker

move the common implementations into TastCase
2020-06-02 21:15:00 +07:00
Leonardo
97cb091ada
Merge pull request #9068 from ethereum/smt_fix_state_var_init_call
[SMTChecker] Relax assertion about callstack
2020-06-02 15:53:14 +02:00
Mathias Baumann
bdc2c63327 Output error when forward referencing constants in inline assembly 2020-06-02 14:37:54 +02:00
Leonardo Alt
ede39fc2da [SMTChecker] Relax assertion about callstack 2020-06-02 12:50:51 +02:00
Kamil Śliwak
9bb9b6345c SolidityExecutionFramework: Fix indentation
- This code can never be reached because CompilerStack.compile() called above does the same analysis and fails if it's not successful.
2020-06-01 18:25:02 +02:00
Kamil Śliwak
df7b82bf31 SolidityExecutionFramework: Remove dead code for handling errors from parsing and analysis
- This code can never be reached because CompilerStack.compile() called above does the same analysis and fails if it's not successful.
2020-06-01 18:24:31 +02:00
Kamil Śliwak
311f025eb5 SolidityExecutionFramework: Fix compileContract() to print Yul errors from the correct source 2020-06-01 18:17:50 +02:00
Kamil Śliwak
ef133aa670 CommandLineInterface: Display an error instead of crashing when assembly variant has no Ewasm translation 2020-05-30 03:09:42 +02:00
Leonardo Alt
2128ff9f13 Fix ICE on push for member access 2020-05-29 19:13:27 +02:00
Leonardo Alt
e5d25692a5 [SMTChecker] Fix BMC targets with FP 2020-05-29 18:13:13 +02:00
chriseth
0b216f5771
Merge pull request #9050 from ethereum/smt_fix_nonvalue_asgn
[SMTChecker] Fix ICE on index access assignment inside single branches
2020-05-28 16:25:46 +02:00
chriseth
65d8b6cf75
Merge pull request #9033 from a3d4/partfix-5819-add-errorid-to-error-class
Add unique ID to Error class
2020-05-28 16:24:47 +02:00
Leonardo
1051cea91c
Merge pull request #9052 from ethereum/smt_add_test_delete_m_d_array
[SMTChecker] Add test that deletes arrays
2020-05-28 16:14:55 +02:00
Leonardo Alt
9b0146be42 Add test 2020-05-28 15:56:47 +02:00
Leonardo Alt
ec766958ea Add test 2020-05-28 13:14:21 +02:00
Leonardo Alt
13f32268da [SMTChecker] Add test that shows that deleting arrays takes the index into account 2020-05-28 13:08:16 +02:00
chriseth
f608e50bad
Merge pull request #9029 from ethereum/fewerInternalSourceRefs
Do not set source locations for small internal assembly routines.
2020-05-28 11:14:20 +02:00
chriseth
ee8307ceed
Merge pull request #9044 from ethereum/issue-9028
Fix failure to find overload resolution when overrides are involved
2020-05-28 10:33:01 +02:00
Bhargava Shastry
61431d2c59 ossfuzz: Remove PC from yul proto specification 2020-05-28 10:09:38 +02:00
a3d4
be83c54d79 Throw TestParserError instead of Error in tests 2020-05-28 02:26:17 +02:00
Leonardo Alt
9e9f0c52e1 [SMTChecker] Support to bitwise 2020-05-27 20:59:00 +02:00
Mathias Baumann
a846c18e67 Fix failure to find overload resolution when overrides are involved 2020-05-27 18:31:56 +02:00
chriseth
eb923af09c Do not set source locations for small internal assembly routines. 2020-05-27 18:26:46 +02:00
chriseth
894478ff8c
Merge pull request #9038 from ethereum/develop
Merge develop into breaking.
2020-05-27 15:24:27 +02:00
chriseth
a06ac0f39f
Merge pull request #8958 from ethereum/evm-version-dependent-rules
[yul] Add support for EVM version-dependent rules.
2020-05-27 12:52:51 +02:00
chriseth
afa873fe9f
Merge pull request #8913 from ethereum/yul-remove-pc-instr
Mark EVM instruction `pc()` as deprecated when used in inline assembly.
2020-05-27 12:10:32 +02:00
Christian Parpart
b7fa5d5040 Mark EVM instruction pc() as deprecated when used in inline assembly. 2020-05-27 12:07:23 +02:00
Alexander Arlt
a7b89065ca [yul] Add support for EVM version-dependent rules. 2020-05-27 11:57:08 +02:00
chriseth
1bf706085d Merge pull request #9030 from ethereum/issue-8923
Fix ICE when trying to decode too large static arrays
2020-05-27 11:45:39 +02:00
chriseth
0aa3fb5026
Merge pull request #9014 from ethereum/sol-yul-abidecode
[Sol - Yul] Add support for ABIDecode.
2020-05-27 11:44:13 +02:00
chriseth
f066050ec0 Merge pull request #9024 from ethereum/namableTypes
Disallow non-namable types for inline arrays.
2020-05-27 09:21:07 +02:00
Kamil Śliwak
f574d8ec3a Don't assume that an expression cannot be associated with a function declaration 2020-05-27 00:05:18 +02:00
Alexander Arlt
118cb13476 [Sol - Yul] Add support for ABIDecode. 2020-05-26 13:30:37 -05:00
Mathias Baumann
884e7cbffc Fix ICE when trying to decode too large static arrays 2020-05-26 19:36:18 +02:00
Alexander Arlt
cb5bfc7436 Update natspec comments on state variables.
- changing some warnings to errors
2020-05-26 11:18:24 -05:00
chriseth
d0b6de580f Disallow non-namable types for inline arrays. 2020-05-26 18:17:35 +02:00
chriseth
50b200a5d5
Merge pull request #8797 from ethereum/sol-yul-populating-internal-dispatch-on-demand
[Sol->Yul] Populating internal dispatch on demand
2020-05-26 18:17:05 +02:00
Mathias Baumann
b3cafe4583 Fix ICE by avoiding copyForLocation() on ArraySliceType 2020-05-26 17:27:46 +02:00
Kamil Śliwak
1a2e441bc5 Generate internal dispatch only for functions that might actually get called via pointers
- This also adds support for internal library calls as a side-effect since they'll now be pulled into the internal dispatch automatically.
2020-05-26 17:01:50 +02:00
chriseth
c5dbcc9853
Merge pull request #9018 from ethereum/fixLeave
Fix implementation of leave.
2020-05-26 11:35:47 +02:00
chriseth
33450619b1 Checks for uninitialized access to calldata variables. 2020-05-26 10:51:13 +02:00
chriseth
fb40a8abb8 Test updates. 2020-05-26 10:51:13 +02:00
chriseth
99194b1450 New tests. 2020-05-26 10:51:13 +02:00
chriseth
bd64e537cb Fix implementation of leave. 2020-05-26 10:24:01 +02:00
Djordje Mijovic
4c3e78d046 Disallowing shifts by signed types 2020-05-26 10:18:21 +02:00
chriseth
69a028b49c Merge remote-tracking branch 'origin/develop' into breaking 2020-05-26 10:11:23 +02:00
chriseth
370350da07
Merge pull request #9008 from ethereum/smt_add_test
[SMTChecker] Add test that has an unused mapping
2020-05-25 17:04:54 +02:00
chriseth
6d64095ccf
Merge pull request #8987 from ethereum/sol-yul-bound-functions
[Sol->Yul] Bound functions
2020-05-25 16:53:33 +02:00
chriseth
8e31c345a8
Merge pull request #8978 from ethereum/disturbance_stack
Add proper unipmlemented errors for array copying
2020-05-25 15:34:45 +02:00
Mathias Baumann
7f3d437ffe Fix caret position for errors with utf source 2020-05-25 14:27:03 +02:00
Mathias Baumann
d45bb2aa07 Add proper unipmlemented errors for array copying 2020-05-25 10:48:42 +02:00
Leonardo Alt
0fda5fe077 [SMTChecker] Add test that has an unused mapping 2020-05-25 10:24:48 +02:00
a3d4
a499ef16fa Fix spelling errors 2020-05-25 02:54:37 +02:00
Kamil Śliwak
4a2ce57bed Add support for bound function calls in IR generator 2020-05-20 21:10:20 +02:00
chriseth
74b9b094c0 Merge remote-tracking branch 'origin/develop' into HEAD 2020-05-20 17:22:47 +02:00
chriseth
32bec6b374
Merge pull request #8800 from ethereum/natspec-bugfix
[BREAKING] NatSpec bugfix
2020-05-20 17:21:15 +02:00
chriseth
ed0f2d463f
Merge pull request #8453 from imapp-pl/configurable-code-size-metric
Configurable CodeSize metric
2020-05-20 17:15:41 +02:00
hrkrshnn
37257548d0 Fixed bug when two empty NatSpec comments led to scanning past EOL 2020-05-20 20:26:02 +05:30
Kamil Śliwak
1fa689e951 [yul-phaser] ProgramCache::calculateTotalCachedCodeSize(): Replace default weights with ones that better correlate with memory usage 2020-05-20 16:47:23 +02:00
Kamil Śliwak
b776021870 [yul-phaser] Command-line options for altering weights used by CodeSize metric 2020-05-20 16:47:23 +02:00
Kamil Śliwak
40dfac7683 [yul-phaser] Require specifying weights for Program::codeSize() 2020-05-20 16:47:23 +02:00
Kamil Śliwak
d199fc537b Add configurable weights to CodeSize metric 2020-05-20 16:47:23 +02:00
Leonardo
56b5f1bb12
Merge pull request #8976 from ethereum/libsmtutil
libsmtutil
2020-05-20 16:14:37 +02:00
hrkrshnn
4a001d568e Removed null members from JSON output 2020-05-20 16:56:33 +05:30
chriseth
84092edc5d
Merge pull request #8914 from random-internet-cat/down-with-unique-ptr
Down with unique_ptr!
2020-05-20 13:22:06 +02:00
Leonardo Alt
45eba27424 Rename namespace 2020-05-20 12:55:18 +02:00
Leonardo Alt
802d66244d Do not link unnecessarily 2020-05-20 12:55:18 +02:00
Leonardo Alt
087605ea02 Create libsmtutil 2020-05-20 12:55:18 +02:00
chriseth
30278c4b88
Merge pull request #8985 from ethereum/fixWasmLoops
Fix webassembly loops by adding explicit break at the end.
2020-05-20 11:08:24 +02:00
chriseth
3c71412a47
Merge pull request #8988 from ethereum/isoltest_default_formatting
[isoltest] Improve parameter formatting.
2020-05-20 08:05:33 +02:00
Alexander Arlt
410986e00f [isoltest] Improve parameter formatting. 2020-05-19 19:13:39 -05:00
chriseth
4e9f6c3508 Fix webassembly loops by adding explicit break at the end. 2020-05-19 22:16:16 +02:00
chriseth
22d5caa979
Merge pull request #8532 from aarlt/structured-docs-variables-aarlt
Allow NatSpec comments for state variables
2020-05-19 19:26:35 +02:00
chriseth
d422a406ba
Merge pull request #8983 from ethereum/develop
Merge develop into breaking.
2020-05-19 18:05:28 +02:00
Kamil Śliwak
16e80b7bcd Test case for internal dispatch with functions that have arguments that take up multiple slots 2020-05-19 18:02:14 +02:00
Alexander Arlt
af8bb5fb60 Allow natspec comments on state variables. 2020-05-19 11:01:52 -05:00
Erik Kundt
7d37ed4531 Adds structured docs for variable declarations.
- adds natspec generation for state variables.
- exports structured docs for state variables to JSON.
2020-05-19 11:01:52 -05:00
Djordje Mijovic
bd64b971b9 Fixing tests on breaking branch. 2020-05-19 17:42:19 +02:00
chriseth
f70ff0dfaa
Merge pull request #8977 from ethereum/mapping-type-error
Error when Mapping type in (non-local) storage is assigned to
2020-05-19 16:52:54 +02:00
Harikrishnan Mulackal
774edd4670 Error when Mapping type in (non-local) storage is assigned to 2020-05-19 19:12:38 +05:30
chriseth
3b27b4347c
Merge pull request #8916 from ethereum/smt_array_push_pop
[SMTChecker] Support array push/pop
2020-05-19 15:41:10 +02:00
chriseth
3211e22045
Merge pull request #8979 from ethereum/doc-json
[Trival] Test: Output JSON AST as array when it involves multiple sources
2020-05-19 15:29:24 +02:00
chriseth
3275243c89
Merge pull request #8898 from mijovic/sol2YulByteArrayPush
[Sol->Yul] Implementing ByteArray push() and pop()
2020-05-19 15:28:01 +02:00
Djordje Mijovic
d235d0c166 [Sol->Yul] Implementing Byte array push() and pop() 2020-05-19 14:47:00 +02:00
Mathias Baumann
5a7217b90e Test: Output JSON AST as array when it involves multiple sources 2020-05-19 14:26:08 +02:00
Leonardo Alt
1ab6ad79d8 Update test expectation 2020-05-18 16:59:31 +02:00
Leonardo Alt
2435ab938c Add verification target for empty pop 2020-05-18 16:35:56 +02:00
Leonardo Alt
d4d26c02e4 Assume that push will not overflow 2020-05-18 16:35:56 +02:00
Jason Cobb
63ad1092cd
Add comment to filenames in boostTest.cpp 2020-05-18 10:24:38 -04:00
chriseth
f92a4f1965 Provide runtime object in Yul mode. 2020-05-18 13:48:23 +02:00
Harikrishnan Mulackal
4a291f8551 Changelog and test 2020-05-18 12:36:01 +05:30
Leonardo Alt
07bb1952a7 Test updates 2020-05-14 23:32:30 +02:00
Leonardo Alt
a0c605aa85 [SMTChecker] Support array length 2020-05-14 23:32:29 +02:00
chriseth
2d1e7d9504
Merge pull request #8931 from random-internet-cat/lazy-init
Add LazyInit
2020-05-14 18:54:19 +02:00
chriseth
7ef114db9a
Merge pull request #8841 from ethereum/sol_yul_ripemd160_ecrecover
[Sol - Yul] Add support for ripemd160 & ecrecover.
2020-05-14 18:43:55 +02:00
Alexander Arlt
91e9d54c71 [Sol - Yul] Add support for ripemd160 & ecrecover. 2020-05-14 10:44:39 -05:00
Jason Cobb
a093962115
Add tests 2020-05-14 11:27:56 -04:00
chriseth
993a7941b1 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 17:24:40 +02:00
Jason Cobb
26406e40d0
Add empty LazyInit test suite 2020-05-14 10:49:31 -04:00
Jason Cobb
24dfa89ee7
Use LazyInit for cached contract compilations 2020-05-14 10:36:58 -04:00
chriseth
b71a3f1f1d
Merge pull request #8939 from ethereum/updateZ3
Update z3 to version 4.8.8.
2020-05-14 16:36:49 +02:00
chriseth
1b86f27002
Merge pull request #8935 from ethereum/moveScopesIntoResolver
Move scopes into resolver.
2020-05-14 14:20:58 +02:00
Daniel Kirchner
0303902173 Update smt test expectations. 2020-05-14 14:12:01 +02:00
chriseth
e751a1c23d Move scopes into resolver. 2020-05-14 13:16:47 +02:00
chriseth
257bc6a416 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 13:04:46 +02:00
Djordje Mijovic
472fb21ee0 [Sol->Yul] Enabling new bytes(n) 2020-05-14 12:55:14 +02:00
chriseth
6308ca4a22 Binary transform for br and br_if. 2020-05-14 11:30:19 +02:00
chriseth
504b8d29c9
Merge pull request #8907 from ethereum/licenseIdentifier
Check for SPDX license identifiers.
2020-05-14 01:21:24 +02:00
Alex Beregszaszi
c9745ea101 EVMHost: enable support for Berlin 2020-05-13 22:56:11 +01:00
Alex Beregszaszi
7353804252 EVMHost: simplify code using new evmc features 2020-05-13 22:56:11 +01:00
Alex Beregszaszi
098cfd333f Update EVMC to 7.2.0 2020-05-13 22:29:35 +01:00
chriseth
1700bdc4ad
Merge pull request #8925 from ethereum/abiEncodeCalldataSlice
Allow abi encoding array slices without casting.
2020-05-13 18:55:16 +02:00
Daniel Kirchner
97296d8622 Allow ABI encoding for array slices without explicit casts. 2020-05-13 18:20:07 +02:00
Alexander Arlt
af44c05f1a Add new test. 2020-05-13 18:16:59 +02:00
Alexander Arlt
52b9a92ff8 Update existing tests. 2020-05-13 18:16:59 +02:00
chriseth
3872a1f000 Add support for SPDX license identifiers. 2020-05-13 18:16:59 +02:00
Mathias Baumann
820fdd9bf7 Escape backslashes when formatting 2020-05-13 17:08:37 +02:00
chriseth
e9446475bb
Merge pull request #8924 from ethereum/arraySliceBug
Fix array slice bug.
2020-05-13 16:06:28 +02:00
Daniel Kirchner
6f04664cfa Disallow array slicing for arrays with dyanmically encoded base types. 2020-05-13 15:52:22 +02:00
chriseth
aca700497c
Merge pull request #8903 from ethereum/exponentiation-bug
Fix exponentiation bug
2020-05-13 15:49:23 +02:00
Harikrishnan Mulackal
47e9a13e8a Fix exponentiation bug 2020-05-13 13:53:06 +05:30
chriseth
b2122d479f
Merge pull request #8915 from a3d4/partfix-5819-remove-erroroccurred-flag
Remove a dedicated error flag from DeclarationTypeChecker and other classes
2020-05-12 20:18:33 +02:00
a3d4
02d1f8c41a Remove a dedicated error flag from DeclarationTypeChecker 2020-05-12 18:13:17 +02:00
chriseth
0be56a0abf Merge remote-tracking branch 'origin/develop' into breaking 2020-05-12 17:48:53 +02:00
chriseth
7da453014d Fix source location of yul variable declarations without value. 2020-05-12 17:45:19 +02:00
chriseth
efd2f63c2c
Merge pull request #8706 from ethereum/solProtoSkeleton
ossfuzz: Add sol proto fuzzer skeleton
2020-05-12 17:15:23 +02:00
chriseth
901b421bb8
Merge pull request #8910 from ethereum/natspec-return-bug
Bug that ignored return tag when no other devdoc tags were present
2020-05-12 16:47:07 +02:00
Harikrishnan Mulackal
095e17f7f9 Bug that ignored return tag when no other devdoc tags were present 2020-05-12 20:05:22 +05:30
Harikrishnan Mulackal
c29d76f8f2 Test for function with value setting 2020-05-12 15:21:13 +05:30
Bhargava Shastry
596ac018f5 Fuzzer: Add test harness for solidity inheritance protobuf fuzzer
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-05-11 23:56:27 +02:00
Bhargava Shastry
00946f3ea0 ossfuzz: Add sol proto fuzzer skeleton
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-05-11 23:56:27 +02:00
Daniel Kirchner
c2f5a66a79 Implement .creationCode for Sol->Yul. 2020-05-11 18:51:51 +02:00
Daniel Kirchner
3fbde6e782
Merge pull request #8856 from ethereum/implicitConstructorCallvalueCheck
Implicit constructor callvalue check
2020-05-11 18:50:36 +02:00
Daniel Kirchner
79b217dfb3 Callvalue checks for implicit constructors. 2020-05-11 16:14:34 +02:00
chriseth
5566cd9f74
Merge pull request #8843 from ethereum/deprecate-now
[BREAKING] Deprecate keyword now
2020-05-11 16:09:21 +02:00
chriseth
f1e0aa7a56
Merge pull request #8763 from ethereum/bareCall
IR code generation for call.
2020-05-11 16:06:54 +02:00
chriseth
3312150d7f
Merge pull request #8878 from ethereum/selecting-yul-optimisation-steps-in-strict-assembly-mode
Selecting Yul optimisation steps in strict assembly mode
2020-05-11 16:05:57 +02:00
chriseth
c0bf529236 Support bare calls. 2020-05-11 15:11:46 +02:00
chriseth
4c13ce24f0
Merge pull request #8887 from ethereum/boost-fs
Remove boost::filesystem where it is not needed
2020-05-11 15:09:54 +02:00
chriseth
0248303c15
Merge pull request #8872 from ethereum/int-min-max
implemented type(X).min and type(X).max for all integer types
2020-05-11 15:08:19 +02:00
Alex Beregszaszi
c31a93b3f2 Remove boost::filesystem where it is not needed
A two uses in CommonIO remain for the compiler (plus testing/tools use it extensively)
2020-05-11 11:19:11 +01:00
Harikrishnan Mulackal
e4e200f29f Changelog and tests 2020-05-11 15:29:05 +05:30
Harikrishnan Mulackal
e54c4eecfc implemented type(X).min and type(X).max for all integer types 2020-05-11 14:51:13 +05:30
Djordje Mijovic
591a5fff07 isoltest: WhiskersError and YulException treated differently when enforcing viaYul 2020-05-11 09:37:04 +02:00
Kamil Śliwak
6a58227830 CommandLineInterface: Make --yul-optimizations work in strict assembly mode 2020-05-08 22:29:57 +02:00
Kamil Śliwak
f56fd5bde8 cmdlineTests.sh: Allow using input.yul instead of input.sol in command-line tests 2020-05-08 22:05:04 +02:00
Harikrishnan Mulackal
4e58c672bb
Merge pull request #8855 from ethereum/update-external-repos
Updated external test repos
2020-05-08 22:51:48 +05:30
Harikrishnan Mulackal
704b334cf6 Updated external test repos 2020-05-08 21:39:02 +05:30
chriseth
a0e291bd06 Implement Yul IR generation for abi.encode* 2020-05-07 19:39:15 +02:00
chriseth
d0b82fe854
Merge pull request #8869 from ethereum/useSlotes
Use vector of slots.
2020-05-07 19:03:59 +02:00
chriseth
f38cf85482 Use vector of slots. 2020-05-07 17:54:04 +02:00
chriseth
4058ce8fe5
Merge pull request #8870 from ethereum/fix-conflicting-symbols-in-yulopti-and-optimiser-suite
Fix conflicting symbols in yulopti and OptimiserSuite
2020-05-07 17:40:17 +02:00
Kamil Śliwak
156bfadad3 yulopti: Fix conflict between 'l' in yulopti and OptimiserSuite and make future conflicts less likely
- OptimizerSuite uses letters so switching to punctuation marks in yulopti should help.
2020-05-07 17:27:24 +02:00
Kamil Śliwak
d3d1520870 yulopti: Add an error message to assetion triggered when an optimizer step abbreviation conflicts with yulopti controls 2020-05-07 17:21:39 +02:00
Kamil Śliwak
3e9fa7e388 yulopti: Print errors to stderr rather than stdout 2020-05-07 17:16:50 +02:00
Mathias Baumann
eb4926cb48 run addMissingFunctions only once 2020-05-07 17:06:11 +02:00
chriseth
3212cb6caa
Merge pull request #8859 from ethereum/noRuntimeForImmutable
trigger error when runtimeCode is called on contracts with immutables
2020-05-07 16:08:27 +02:00
chriseth
f42dc70c9f
Merge pull request #8863 from ethereum/nonReversedEncoder
Introduce non-reversed version of tupleEncoder.
2020-05-07 15:47:32 +02:00
Mathias Baumann
50e59f1008 trigger error when runtimeCode is called on contracts with immutables 2020-05-07 15:10:04 +02:00
chriseth
e986fde0c1 Introduce non-reversed version of tupleEncoder. 2020-05-07 15:08:09 +02:00
a3d4
5e9502bfae Fix ABI internal compiler error caused by an internal constructor 2020-05-07 05:49:49 +02:00
Alex Beregszaszi
327c75bc1b IR generation for shifts 2020-05-06 19:14:23 +02:00
Christian Parpart
3a93080ca9
Merge pull request #8821 from ethereum/remove-flag
Remove obsolete flag --optimize-yul from scripts
2020-05-06 16:20:23 +02:00
chriseth
76275cf34a
Merge pull request #8824 from ethereum/solYulDirtyMemory
Fix accessing memory reference types in yul codegen and clean up on memory reads.
2020-05-06 16:17:19 +02:00
Daniel Kirchner
234ffcf278
Merge pull request #8718 from ethereum/irConstants
IR generation for constants.
2020-05-06 16:05:17 +02:00
Mathias Baumann
02c5f1f748 Remove --optimize-yul flag for soltest 2020-05-06 11:49:40 +02:00
Daniel Kirchner
c25a3eba14 Fix accessing memory reference types in yul codegen and clean up on memory reads. 2020-05-06 11:34:11 +02:00
chriseth
4c1e821e01
Merge pull request #8845 from ethereum/solYulCleanup
[Sol->Yul] Cleanup for checked arithmetic and comparisons.
2020-05-05 17:58:36 +02:00
Harikrishnan Mulackal
92cf61d4f9 fixed compilation tests and upgraded ext. tests branch 2020-05-05 21:11:15 +05:30
Harikrishnan Mulackal
a207613f17 Docs, changelog and tests 2020-05-05 21:11:15 +05:30
Daniel Kirchner
b580106c80 Yul parser hack and more yul tests. 2020-05-05 17:23:41 +02:00
chriseth
02c20698c9 IR generation for constants. 2020-05-05 17:07:55 +02:00
Daniel Kirchner
7b48c120b5 Always enforce via yul for isoltest runs. 2020-05-05 14:08:59 +02:00
Daniel Kirchner
28d25afab1 Cleanup tests for Sol->Yul arithmetic and comparison. 2020-05-05 13:38:31 +02:00
Harikrishnan Mulackal
dd7d63925a
Merge pull request #8806 from ethereum/natspec-constructor
[BREAKING] Natspec constructor and functions have consistent userdoc
2020-05-05 15:47:34 +05:30
Djordje Mijovic
e8f6f63e77 [Sol2Yul] Adding support for builtin revert(string) 2020-05-05 07:05:39 +02:00
Djordje Mijovic
8b7f87eed5 [isoltest] Enforcing compileViaYul to be set if test can pass via yul 2020-05-05 00:38:13 +02:00
chriseth
ecbf216354 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-04 18:46:45 +02:00
chriseth
1aef9c7d20
Merge pull request #8777 from ethereum/sol_yul_simplefunctions
[Sol - Yul] Add some built-in functions.
2020-05-04 16:07:10 +02:00
chriseth
3738cff6e6 Test updates. 2020-05-04 15:00:50 +02:00
chriseth
51ccb1519f Yul codegen for immutables. 2020-05-04 15:00:50 +02:00
Mathias Baumann
debcc8c056 Add setimmutable and loadimmutable to dialect. 2020-05-04 15:00:50 +02:00
hrkrshnn
aa65e9423c Uniform output in functions and constructor NatSpec 2020-05-04 12:39:43 +05:30
Alexander Arlt
a9f4d14010 [Sol - Yul] Add support for send(..) & transfer(..) 2020-05-01 08:32:51 -05:00
Alexander Arlt
151e637336 [Sol - Yul] Add some built-in functions.
- simplifications for GasLeft, Selfdestruct and BlockHash.
- add support for addmod & mulmod.
2020-04-30 14:10:09 -05:00
chriseth
602b29cba7
Merge pull request #8796 from a3d4/fix-8760-typechecker-compiler-error
[Type Checker] Fix internal error when applying unary operators to tuples with empty components
2020-04-29 10:14:15 +02:00
a3d4
3bd15655cb Type Checker: Fix internal error when applying unary operators to tuples with empty components 2020-04-29 02:18:48 +02:00
chriseth
cc3992452f
Merge pull request #8791 from random-internet-cat/fix-8406
Fix broken assertion in ContractCompiler
2020-04-28 19:46:30 +02:00
Jason Cobb
8973732b74
Compare categories instead of types in ContractCompiler(740) 2020-04-28 13:13:45 -04:00
yoni206
4327434d07 Adding bit-vector NOT operation to the opcodes. 2020-04-28 09:43:31 -07:00
chriseth
55e34407d3
Merge pull request #8726 from ethereum/fix-8724
Yul proto spec: Add multiple variable declaration statement
2020-04-28 13:13:07 +02:00
chriseth
1fe55370f4 Merge remote-tracking branch 'origin/develop' into HEAD 2020-04-28 13:02:06 +02:00
hrkrshnn
a58b5b2bbe Changed repo to upstream; branches to latest 2020-04-28 16:03:52 +05:30
hrkrshnn
bd0b06e8db Tests, Docs and Changelog 2020-04-28 16:03:52 +05:30
Djordje Mijovic
f3f729549d [Sol->Yul] Enabling creation function call 2020-04-27 16:15:57 +02:00
Alex Beregszaszi
99aa821410
Merge pull request #8720 from ethereum/irSha256
IR generation for sha256.
2020-04-27 13:44:26 +01:00
chriseth
3828adbbbd
Merge pull request #8761 from ethereum/conditonalStrings
Conditional strings for Whiskers.
2020-04-27 14:07:30 +02:00
Bhargava Shastry
5113af1df0 Update test/tools/ossfuzz/protoToYul.h
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-04-27 14:01:11 +02:00
Bhargava Shastry
62e5ccec90 Minor code factoring to clarify for init scope extension 2020-04-27 14:01:11 +02:00
Bhargava Shastry
7280ed716a Yul proto spec: Add multiple variable declaration statement 2020-04-27 14:01:11 +02:00
chriseth
5b92dedeed
Merge pull request #8753 from a3d4/fix-sourcereferenceformathuman-leftpad
Fix leftpad in SourceReferenceFormatterHuman
2020-04-27 11:22:14 +02:00