Commit Graph

2133 Commits

Author SHA1 Message Date
chriseth
71cb7551f4
Merge pull request #9208 from ethereum/develop
Merge develop into breaking.
2020-06-16 16:11:41 +02:00
a3d4
5d63fa09e9 Fix false ////- and /***-natspec 2020-06-16 11:15:04 +02:00
Kamil Śliwak
c5fb5f6d57 List command-line interface changes in the changelog 2020-06-15 17:13:17 +02:00
chriseth
8155ad2187 Merge remote-tracking branch 'origin/develop' into breaking 2020-06-15 17:11:41 +02:00
Mathias Baumann
d54e7f50ed Natspec: Output "type" and "version" in documenation 2020-06-15 14:53:34 +02:00
chriseth
7c28953a61 Missing changelog entry. 2020-06-15 14:49:14 +02:00
chriseth
65937ab5c8 Set version to 0.6.11. 2020-06-11 20:24:01 +02:00
chriseth
3c43216a75 Set release date for 0.6.10. 2020-06-11 14:07:00 +02:00
chriseth
549c90612c Fix using for with explicit reference types. 2020-06-11 13:04:41 +02:00
chriseth
baabe65a84 Fix bound functions with calldata parameters. 2020-06-10 17:37:59 +02:00
chriseth
2410f0ed5a
Merge pull request #9135 from ethereum/fixReturnParameterLocation
Fixing ICE on calling externally a function that returns calldata pointers
2020-06-10 16:44:38 +02:00
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
Harikrishnan Mulackal
d8263d331e Ignore warnings for yulOptimizer tests 2020-06-09 13:03:57 +02:00
Leonardo Alt
acbe7a947b Changelog entry 2020-06-08 10:23:57 +02:00
Leonardo Alt
87ceb72b82 [SMTChecker] Fix internal error in tuples of tuples. 2020-06-05 12:20:47 +02:00
chriseth
4cf92bcd89 Set version to 0.6.10 2020-06-04 18:44:22 +02:00
Daniel Kirchner
59ee743f6a Switch to upstream docker image for emscripten build. 2020-06-04 16:17:29 +02:00
chriseth
fc4b3e33b7 Prepare 0.6.9. 2020-06-04 14:25:04 +02:00
Kamil Śliwak
9b4077aa98 Changelog entry for #9074 2020-06-04 11:48:13 +02:00
chriseth
259292c884
Merge pull request #9118 from ethereum/develop
Merge develop into breaking.
2020-06-04 10:18:46 +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
Christian Parpart
9820df58ab Remove Yul instruction PC and adapt tests accordingly. 2020-06-03 12:49:23 +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
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
Leonardo Alt
10162016ae [SMTChecker] Fix internal error on try/catch 2020-06-02 16:51:53 +02:00
Mathias Baumann
bdc2c63327 Output error when forward referencing constants in inline assembly 2020-06-02 14:37:54 +02:00
Leonardo Alt
b90fb1cab6 [SMTChecker] Fix ICE on index access assignment inside single branches 2020-05-28 15:56:46 +02:00
chriseth
79f4a2b476
Merge pull request #9051 from ethereum/smt_fix_callstack
[SMTChecker] Fix ICE in inlining function calls while short circuiting
2020-05-28 15:48:50 +02:00
chriseth
bf4ef7483c
Merge pull request #8927 from ethereum/solc-base-path
Adds ``--base-path` to solc when compiling in `--standard-json` mode for resolving relative paths.
2020-05-28 14:10:01 +02:00
Leonardo Alt
a73ec6a82f [SMTChecker] Fix ICE in inlining function calls while short circuiting 2020-05-28 13:14:19 +02:00
Leonardo
097954bc80
Merge pull request #9049 from ethereum/smt_fix_fp
[SMTChecker] Fix fixed point inc/dec
2020-05-28 13:13:23 +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
Leonardo Alt
cb1cbbc1f1 [SMTChecker] Fix fixed point inc/dec 2020-05-28 10:56:06 +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
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
Christian Parpart
09485058d8 Adds `--base-path to solc when compiling in --standard-json mode for resolving relative paths. 2020-05-27 16:23:03 +02:00
chriseth
894478ff8c
Merge pull request #9038 from ethereum/develop
Merge develop into breaking.
2020-05-27 15:24:27 +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
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
Mathias Baumann
884e7cbffc Fix ICE when trying to decode too large static arrays 2020-05-26 19:36:18 +02:00
chriseth
d0b6de580f Disallow non-namable types for inline arrays. 2020-05-26 18:17:35 +02:00
Mathias Baumann
b3cafe4583 Fix ICE by avoiding copyForLocation() on ArraySliceType 2020-05-26 17:27:46 +02:00
chriseth
add55fd793 Documentation. 2020-05-26 10:51:13 +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
Mathias Baumann
d45bb2aa07 Add proper unipmlemented errors for array copying 2020-05-25 10:48:42 +02:00
chriseth
74b9b094c0 Merge remote-tracking branch 'origin/develop' into HEAD 2020-05-20 17:22:47 +02:00
hrkrshnn
37257548d0 Fixed bug when two empty NatSpec comments led to scanning past EOL 2020-05-20 20:26:02 +05:30
hrkrshnn
4a001d568e Removed null members from JSON output 2020-05-20 16:56:33 +05:30
chriseth
d422a406ba
Merge pull request #8983 from ethereum/develop
Merge develop into breaking.
2020-05-19 18:05:28 +02:00
Alexander Arlt
af8bb5fb60 Allow natspec comments on state variables. 2020-05-19 11:01:52 -05: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
Leonardo Alt
82db35e563 [SMTChecker] Support array push/pop 2020-05-18 16:33:34 +02:00
Harikrishnan Mulackal
4a291f8551 Changelog and test 2020-05-18 12:36:01 +05:30
Leonardo Alt
a0c605aa85 [SMTChecker] Support array length 2020-05-14 23:32:29 +02:00
Daniel Kirchner
e5da635c0c Add missing Changelog entry about soljson.js build changes. 2020-05-14 21:38:43 +02:00
chriseth
993a7941b1 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 17:24:40 +02:00
chriseth
79e62f6600 Set version to 0.6.9. 2020-05-14 13:58:00 +02:00
chriseth
79a8f78ed4 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 13:07:30 +02:00
chriseth
257bc6a416 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 13:04:46 +02:00
chriseth
a16a8c6123 Sort and copyedit changelog. 2020-05-14 12:36:04 +02:00
chriseth
6308ca4a22 Binary transform for br and br_if. 2020-05-14 11:30:19 +02: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
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
Harikrishnan Mulackal
47e9a13e8a Fix exponentiation bug 2020-05-13 13:53:06 +05:30
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
Harikrishnan Mulackal
095e17f7f9 Bug that ignored return tag when no other devdoc tags were present 2020-05-12 20:05:22 +05:30
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
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
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
Harikrishnan Mulackal
e4e200f29f Changelog and tests 2020-05-11 15:29:05 +05:30
Kamil Śliwak
6a58227830 CommandLineInterface: Make --yul-optimizations work in strict assembly mode 2020-05-08 22:29:57 +02:00
Mathias Baumann
eb4926cb48 run addMissingFunctions only once 2020-05-07 17:06:11 +02:00
Mathias Baumann
50e59f1008 trigger error when runtimeCode is called on contracts with immutables 2020-05-07 15:10:04 +02:00
a3d4
5e9502bfae Fix ABI internal compiler error caused by an internal constructor 2020-05-07 05:49:49 +02:00
Harikrishnan Mulackal
a207613f17 Docs, changelog and tests 2020-05-05 21:11:15 +05:30
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
chriseth
ecbf216354 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-04 18:46:45 +02:00
chriseth
14ba31f64c Set version to 0.6.8. 2020-05-04 18:09:10 +02:00
Kamil Śliwak
682f53fc82 Changelog: Add an entry for --yul-optimizations option 2020-05-04 15:36:27 +02:00
chriseth
d7180c0522 Prepare 0.6.7. 2020-05-04 12:57:27 +02:00
hrkrshnn
aa65e9423c Uniform output in functions and constructor NatSpec 2020-05-04 12:39:43 +05:30
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
1fe55370f4 Merge remote-tracking branch 'origin/develop' into HEAD 2020-04-28 13:02:06 +02:00
hrkrshnn
bd0b06e8db Tests, Docs and Changelog 2020-04-28 16:03:52 +05:30
ssi91
3d772edc7a handle file prefix
add the description to the changelog

fix: use the right method to search in string

follow the codestyle

using tabs

delete redundant declaration

implement the handling inline

Update Changelog.md

Co-Authored-By: Leonardo <leo@ethereum.org>
2020-04-27 21:02:39 +07:00
chriseth
d136e7dc95 Rules for optimizing idempotency for bitwise operations. 2020-04-23 14:21:00 +02:00
hrkrshnn
48ff9fd4d6 Tests, Changelog and updated grammar 2020-04-23 17:27:37 +05:30
chriseth
a371910674
Merge pull request #8642 from ethereum/interfaceid
Add support for interfaceId.
2020-04-23 12:24:49 +02:00
chriseth
18ee96ac91
Merge pull request #8752 from a3d4/fix-8711-typechecker-compiler-error
Type Checker: Fix internal error when assigning to empty tuples
2020-04-23 12:01:00 +02:00
a3d4
9538024c81 Fix #8711, #8277 2020-04-23 05:57:35 +02:00
Leonardo Alt
cfe3686116 Fix internal error when using array slices 2020-04-22 23:20:10 +02:00
Leonardo Alt
83c9e82099 Fix ICE with fixed point 2020-04-22 19:57:00 +02:00
chriseth
6728e3ef94 Merge remote-tracking branch 'origin/develop' into breaking 2020-04-22 17:21:32 +02:00
chriseth
00a53c95e3
Merge pull request #8694 from ethereum/out-of-tree-build-dir
Out-of-tree SOLIDITY_BUILD_DIR
2020-04-20 15:15:52 +02:00
chriseth
5aa2107877 Changelog entries for declaration type checker. 2020-04-20 13:26:39 +02:00
Kamil Śliwak
3e65bcfd7f Allow SOLIDITY_BUILD_DIR outside of REPO_ROOT in scripts that respect this variable 2020-04-17 19:09:22 +02:00
Alexander Arlt
3754a86ab2 Add support for interfaceID. 2020-04-16 12:17:40 -05:00
Daniel Kirchner
b86c927505 Disallow virtual and override for constructors. 2020-04-15 13:58:37 +02:00
chriseth
557c3ef767 Set version to 0.6.7. 2020-04-09 16:50:31 +02:00
chriseth
474b72e3f4 Prepare 0.6.6 2020-04-09 11:55:21 +02:00
chriseth
748afe0edd
Merge pull request #8630 from ethereum/encoding-bug-functionCallOption
TypeChecker error when encoding functions with call options; tests
2020-04-08 16:33:24 +02:00
chriseth
9fab9df18c
Merge pull request #8607 from a3d4/fix-nested-tuples
Fixed nested tuples on the right-hand side.
2020-04-08 12:29:52 +02:00
a3d4
aba0b2957c Fix tuple assignments with multi-slot components. 2020-04-07 18:39:25 +02:00
hrkrshnn
96411711ef Added changelog 2020-04-07 21:17:35 +05:30
chriseth
236eff8416 Export immutability. 2020-04-07 17:30:54 +02:00
chriseth
51883958ab Merge remote-tracking branch 'origin/develop' into breaking 2020-04-07 11:14:28 +02:00
Leonardo Alt
e3ec22124e [SMTChecker] Fix ICE in CHC internal calls 2020-04-07 01:09:03 +02:00
chriseth
0988ee641b Set version to 0.6.6. 2020-04-06 18:12:21 +02:00
chriseth
06562e3431 Prepare changelog for 0.6.5. 2020-04-06 11:11:20 +02:00
hrkrshnn
532214f5e1 Moved changelog entry to 0.7.0 2020-04-06 14:21:19 +05:30
hrkrshnn
35a743e222 Added a changelog 2020-04-03 15:11:22 +05:30
chriseth
0d3303e4af
Changelog entry for immutable variables. 2020-04-02 17:46:29 +02:00
chriseth
8d28089abc
Merge pull request #8475 from ethereum/immutable-functioncallgraph
implement ImmutableValidator class
2020-04-02 14:14:53 +02:00
hrkrshnn
cb66274827 Added changelog 2020-04-02 17:41:44 +05:30
Mathias Baumann
ac7b31e559 Validate immutable variables 2020-04-02 13:52:27 +02:00
Daniel Kirchner
fe9f8d520c Restrict size for dynamic memory array creation. 2020-04-01 17:25:09 +02:00
Alexander Arlt
3e649eb8e1 Disallow access to functions from inline assembly. 2020-04-01 10:34:55 +02:00
chriseth
b83d82ab75
Merge pull request #8550 from a3d4/fix-8450-typechecker-compiler-error
Fix  a couple of internal compiler errors when assigning nested tuples
2020-03-31 22:21:58 +02:00
a3d4
c002cae691 Fix #8450. Prevented internal compiler errors when assigning nested tuples. 2020-03-31 03:25:26 +02:00
chriseth
4a7d2e590d
Merge pull request #8529 from MrChico/develop
CommandLineInterface: add storage-layout option to --combined-json
2020-03-26 19:15:23 +01:00
Martin Lundfall
5b4ea1eb89 CommandLineInterface: add storage-layout option to --combined-json 2020-03-26 11:38:28 +01:00
a3d4
339f3ca32c Fix #8427: Promoted typeError to fatalTypeError in ReferencesResolver::endVisit(UserDefinedTypeName). 2020-03-25 02:51:34 +01:00
chriseth
7d68f9f6c3 Merge remote-tracking branch 'origin/develop' into breaking 2020-03-24 13:35:41 +01:00
Daniel Kirchner
fe659ceb41 Anything outside storage is always a pointer. 2020-03-23 15:34:10 +01:00
chriseth
1587486334 Merge tag 'v0.5.17' into develop 2020-03-17 19:50:09 +01:00
Mathias Baumann
e2db9d7ef3 Disallow private functions from being overridden 2020-03-17 16:15:59 +01:00
a3d4
a86c511713 Replaced "assert" with "if" (incorrect contract code is not supposed to trigger asserts). 2020-03-12 14:03:27 +01:00
chriseth
9d92c9fbf1 Merge remote-tracking branch 'origin/develop' into HEAD 2020-03-11 18:44:06 +01:00
Leonardo
07ab4c80c4
Merge pull request #8323 from ethereum/smt_split_3
[SMTChecker] CHC support to internal function calls
2020-03-11 18:37:45 +01:00
Leonardo Alt
07368c2e1e Add support to internal function calls 2020-03-11 16:29:07 +01:00
Djordje Mijovic
37878cf8d2 Adding support for ipfs large files. 2020-03-11 13:55:46 +01:00
chriseth
f8344cb4df Set version to 0.6.5 2020-03-10 21:08:03 +01:00
chriseth
d541e222a2 Prepare changelog for 0.6.4. 2020-03-10 10:46:13 +01:00
Daniel Kirchner
809e3503ba Control flow analysis for inline assembly. 2020-03-09 16:23:10 +01:00
chriseth
4ad998eb5f
Merge pull request #8391 from ethereum/optimizedIRCommandline
Enable optimized IR output via the commandline.
2020-03-09 15:05:29 +01:00
chriseth
37e01a19c0 Fix scoping following try/catch. 2020-03-09 13:14:13 +01:00
chriseth
a328e940b5
Merge pull request #8429 from ethereum/astJsonImportYulBlock
Fix yul ast import for blocks, switches and string literals.
2020-03-08 17:06:05 +01:00
Daniel Kirchner
7f38cbb91d Fix calling unimplemented base function. 2020-03-06 10:51:16 +01:00
Daniel Kirchner
420f57aec3 Fix yul ast import for blocks, switches and string literals. 2020-03-05 14:09:13 +01:00
Daniel Kirchner
b10f12a395
Merge pull request #8413 from mijovic/depratateValueCalls
Deprecated warning for .value() and .gas() on function and constructr…
2020-03-04 14:43:06 +01:00
Djordje Mijovic
58c6b90705 Deprecated warning for .value() and .gas() on function and constructror calls 2020-03-04 12:51:49 +01:00
Leonardo Alt
96a230af50 [SMTChecker] Fix ICEs with tuples 2020-03-03 11:35:58 +01:00
chriseth
bc32619364 Enable optimized IR output via the commandline. 2020-02-27 15:48:38 +01:00
chriseth
06ad5b3200 Merge remote-tracking branch 'origin/develop' into HEAD 2020-02-27 15:06:36 +01:00
chriseth
bb09787bd0
Merge pull request #8378 from mijovic/yulSourceLocations
Adding source location support to AssemblyStack
2020-02-25 22:34:57 +01:00
Djordje Mijovic
ec083c4878 Adding source location support to AssemblyStack and thus debugging Yul sources 2020-02-25 22:19:03 +01:00
chriseth
c5a0a434e2
Merge pull request #8374 from ethereum/writeAccessToSlot
Allow access to ``_slot`` for local storage pointer variables.
2020-02-25 22:11:13 +01:00
chriseth
45041e5d3a Allow access to `_slot` for local storage pointer variables. 2020-02-25 14:28:04 +01:00
Djordje Mijovic
8524e3f48d Standard-JSON-Interface: Fix a bug (#8371) related to empty filenames and imports. 2020-02-25 01:07:36 +01:00
Djordje Mijovic
dd9009eba6 TestFileParser: Adding new keyword wei for expressing function value 2020-02-21 11:39:37 +01:00
chriseth
9dd9a68c08 Set version to 0.6.4. 2020-02-18 16:42:02 +01:00
chriseth
c2e22d4cab
Merge pull request #8221 from ethereum/structured-docs-error-locations
[parser] Source locations for structured documentation errors
2020-02-18 14:57:28 +01:00
chriseth
4115553344 Prepare changelog for 0.6.3 release. 2020-02-18 12:52:58 +01:00
Djordje Mijovic
18dea6b69c Assembly: Added missing source field to legacy assembly json output to complete the source reference 2020-02-18 10:22:34 +01:00
Erik Kundt
125d9f6648 Adds changelog for locations of structured doc errors. 2020-02-14 15:53:39 +01:00
Daniel Kirchner
e3a235a492 Add missing changelog entries. 2020-02-14 14:22:11 +01:00
Gaith Hallak
24d6702986 [Yul] Prune functions that call each other but are otherwise unreferenced 2020-02-11 20:39:32 +03:00
Leonardo Alt
36928c7a35 Add reason string for internal reverts 2020-02-10 11:57:20 -03:00
chriseth
0b9c842656 Fix abstract without contract. 2020-02-05 12:14:14 +01:00
Daniel Kirchner
d3cbfb0c5c Allow user-defined types as mapping keys in parser and restrict to contracts during type checking. 2020-02-04 17:22:03 +01:00
Erik Kundt
306f6d963d Adds changelog entry for structured AST node introduction. 2020-01-30 18:26:01 +01:00
chriseth
abbedb0819
Update Changelog.md
Co-Authored-By: Erik K <erik@ethereum.org>
2020-01-29 13:49:45 +01:00
chriseth
a6dfb6a4ef Changelog entry about zeroing out memory. 2020-01-29 09:10:09 +01:00
chriseth
c8994d9ee2 Set version to 0.6.3. 2020-01-27 18:57:33 +01:00
chriseth
99202e85ce Polish changelog for 0.6.2. 2020-01-27 09:41:15 +01:00
chriseth
8e7aef63f0 Changelog entry. 2020-01-23 21:20:01 +01:00
Jason Cobb
f492a0a3ef
Update changelog for interface inheritance 2020-01-22 09:40:40 -05:00
Daniel Kirchner
ee5ff4df4e Clean up visibility via contract name and fix ICE on calling unimplemented base function. 2020-01-16 19:13:04 +01:00
chriseth
3d4a2219a6
Merge pull request #8151 from ethereum/fixYulOptSetting
Only activate Yul optimizer if ``--optimize`` is given.
2020-01-16 11:26:38 +01:00
chriseth
b69664e7fd Only activate Yul optimizer if `--optimize` is given. 2020-01-15 18:35:10 +01:00
chriseth
6ab8802601
Merge pull request #8132 from ethereum/drop-lll
Remove the LLL compiler
2020-01-15 15:15:22 +01:00
chriseth
ed87b08911
Merge pull request #8066 from ethereum/removeAsmFlavour
Remove asm flavour
2020-01-15 14:21:54 +01:00
Alex Beregszaszi
09a9099057 Mention in changelog 2020-01-15 13:18:24 +00:00
chriseth
b3fe84a6ea
Merge pull request #7153 from djudjuu/newImportAST
import ast from JSON
2020-01-14 17:56:53 +01:00
chriseth
180344ab17 Changelog entry. 2020-01-14 17:16:25 +01:00
djudjuu
e8556fa1b2 Ast-Import from standard-json 2020-01-14 17:15:53 +01:00
chriseth
4d681fb16d Merge remote-tracking branch 'origin/develop' into HEAD 2020-01-14 16:43:48 +01:00
chriseth
6dbadf692b
Merge pull request #7843 from ethereum/updateEmscriptenWasmTest
Switch to building soljson.js with base64 encoded embedded wasm binary.
2020-01-14 16:35:02 +01:00
Daniel Kirchner
90e494615e Build soljson.js with embedded base64-encoded wasm binary. 2020-01-13 10:51:48 +01:00
Daniel Kirchner
9535c0f520 Introduce FunctionKind::Declaration and allow accessing function signatures via contract name. 2020-01-09 15:40:41 +01:00
chriseth
01dfc512a9 Changelog entry. 2020-01-08 09:57:38 +01:00
chriseth
d1a7ff0fbc
Merge pull request #8008 from ethereum/large-code
Issue warning if codesize exceeds EIP-170 limits
2020-01-08 09:48:59 +01:00
chriseth
12b52ae637
Merge pull request #8096 from ethereum/incrementVersion
Set version to 0.6.2.
2020-01-08 09:19:35 +01:00
Christian Parpart
345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
chriseth
b269eef721 Set version to 0.6.2. 2020-01-03 13:38:17 +01:00
chriseth
385e1bf70a Set release date. 2020-01-03 00:04:01 +01:00
chriseth
42712a78ce Merge branch 'release-0.5' into develop. 2020-01-02 23:49:43 +01:00
chriseth
1c2096a360 Changelog entry. 2020-01-02 18:49:56 +01:00
chriseth
c70bdf2b2c
Merge pull request #8082 from ethereum/fixRedundantContinue
Fix redundant assignment removal in combination with break / continue.
2020-01-02 18:46:26 +01:00
chriseth
c3f43fd1e6 Changelog entry. 2019-12-29 15:53:47 +01:00
Alex Beregszaszi
4d791b2679 Issue warning if codesize exceeds EIP-170 limits 2019-12-25 19:51:35 +01:00
chriseth
c44916cbd5 Changelog entry for try/catch. 2019-12-20 08:29:25 +01:00
Erik Kundt
2c478e85e2 Sets project version to 0.7.0 2019-12-19 12:44:38 +00:00
chriseth
c7f75bd9dc Set version to 0.6.1. 2019-12-18 00:04:39 +01:00
chriseth
1439d43ad6 Changelog for 0.6.0. 2019-12-17 19:48:55 +01:00
chriseth
b6fc703a27 Merge remote-tracking branch 'origin/release' into HEAD 2019-12-17 19:47:59 +01:00
chriseth
6453d80c08 Changelog entry. 2019-12-17 17:08:27 +01:00
Gaith Hallak
371e6a4801 Add function selector to FunctionDefinition AST JSON 2019-12-16 15:16:54 +03:00
Christian Parpart
8682af2216 libsolc: Overhauls memory management. 2019-12-11 15:17:39 +00:00
Alex Beregszaszi
2456c6d503 Update documentation about (reserved) keywords 2019-12-10 17:22:20 +00:00
Alex Beregszaszi
b71a4d6ce3 Sort the changelog 2019-12-10 16:51:59 +00:00
Alex Beregszaszi
e750154074 Some wording fixes in the changelog 2019-12-10 16:50:54 +00:00
chriseth
f6916a637e Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-09 17:16:58 +01:00
chriseth
9c3503834d Fix semver matcher differently. 2019-12-09 15:45:01 +01:00
chriseth
9d2fc7ec8b Sort changelog. 2019-12-09 12:34:21 +01:00
chriseth
ea4b9e2f98 Changelog wording. 2019-12-09 12:33:11 +01:00
chriseth
e061f1e743 Merge remote-tracking branch 'origin/develop' into HEAD 2019-12-05 16:44:26 +01:00
chriseth
1fe1459b7d
Merge pull request #7583 from HenryRLee/issue5081
Version Checker: 0.5.x-prerelease will match `pragma solidity ^0.5` #5081
2019-12-05 14:59:58 +01:00
Mathias Baumann
b7d5de59c5 Implement overridding of functions by public variables 2019-12-05 12:48:52 +00:00
Gaith Hallak
4d90180e24 Support referencing other constants in inline assembly 2019-12-05 13:27:17 +03:00
Daniel Kirchner
8b35918ad0 Replace superFunction by baseFunctions in AST annotations and JSON AST. 2019-12-05 03:33:32 +01:00
Henry Lee
628d219c94 Version Checker: 0.5.x-prerelease will match pragma solidity ^0.5
Basically, the pre-release rule is only applied when all remaining
version numbers equal to 0.
2019-12-05 09:07:20 +11:00
chriseth
42d9a8e962 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-04 17:01:44 +01:00
chriseth
dc79274871 Set default EVM version to Istanbul. 2019-12-04 10:42:14 +01:00
chriseth
bbeb093abf Detect loops in call graph generator. 2019-12-03 21:38:20 +01:00
chriseth
e3ee67da6c
Merge pull request #7792 from ethereum/enableYulOptimizer
Enable yul optimizer by default.
2019-12-03 21:24:22 +01:00
chriseth
2d42da3b7d
Merge pull request #7817 from ethereum/bail-on-shadowing-state-vars
Report error on shadowing state variables
2019-12-03 21:22:39 +01:00
Christian Parpart
7bbdfe070f Make shadowing of inherited state variables an error. 2019-12-03 21:20:03 +01:00
chriseth
2f11ac3590 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-03 21:17:15 +01:00
chriseth
19a6f09cc8 Merge commit '4d2f20570' into develop_060 2019-12-03 21:01:31 +01:00
chriseth
96d777d7f1 Merge commit 'a7d481fb9' into develop_060 2019-12-03 20:47:30 +01:00
Leonardo Alt
b1577f5e46 [SMTChecker] Fix ICE in array of structs type 2019-12-03 01:12:30 +01:00
Daniel Kirchner
77a9e91443 Enable yul optimizer by default. 2019-12-02 19:30:14 +01:00
chriseth
c61ed0b22d
Merge pull request #7797 from ethereum/allowTranslationInAssemblyMode
Allow EVM to EWasm translation in assembly mode.
2019-12-02 13:15:06 +01:00
Leonardo Alt
5adc2a40b9 [SMTChecker] Fix ICE for arrays and mappings of functions. 2019-11-29 18:06:44 +01:00
Daniel Kirchner
edd80a986d Update emscripten to 1.39.3 2019-11-29 12:55:02 +01:00
chriseth
6499e52a86 Changelog entry. 2019-11-28 16:15:32 +01:00
Leonardo Alt
a352abe00d [SMTChecker] Add support to constructors 2019-11-28 14:43:23 +01:00
chriseth
f7fc42d8c3
Merge pull request #7826 from ethereum/develop
Merge develop into develop_060
2019-11-28 13:37:19 +01:00
mingchuan
db60d123d0 [YulOpt] Implement loop-invariant code motion 2019-11-28 11:59:29 +01:00
Mathias Baumann
7bc6645218 Disallow use of virtual and private together 2019-11-27 18:52:41 +01:00
chriseth
b0db64ff5b Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-26 16:19:35 +01:00
chriseth
41177bc75c
Merge pull request #7770 from ethereum/yul_string_format
[Yul] Format string literals back to quoted string literals
2019-11-26 15:51:54 +01:00
chriseth
0973ae751a Do not warn about enabled ABIEncoderV2 anymore. 2019-11-26 15:49:42 +01:00
Leonardo Alt
ce83bfb088 [Yul] Format string literals back to quoted string literals 2019-11-26 15:28:39 +01:00
Gaith Hallak
4a1e85436b Allow splitting string literals into multiple parts 2019-11-26 14:41:30 +03:00
Alex Beregszaszi
eedfafbbc4 Introduce callback context in libsolc 2019-11-22 11:42:39 +00:00
Leonardo Alt
ddc478e3e4 Add CallbackKind and use it for the SMT solver 2019-11-21 22:10:21 +00:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
chriseth
d5e9271592
Merge pull request #7350 from ethereum/array-length-rvalue
Make `length` member read-only
2019-11-21 19:22:42 +01:00
chriseth
8f2595957b
Merge pull request #7719 from ethereum/librarySignatuŕes
Add selector member to public and external library functions.
2019-11-20 18:43:14 +01:00
Leonardo Alt
389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +01:00
chriseth
d696b3c92b
Merge pull request #7743 from ethereum/fixice-7558
Disallow conversion from ``super``
2019-11-19 18:52:33 +01:00
Mathias Baumann
23cad71c88 Disallow conversion from `super` 2019-11-19 17:14:11 +01:00
Erik Kundt
ecaed1030f Makes array length access read-only. 2019-11-19 16:09:21 +01:00
Erik K
94272d44aa
Merge pull request #7745 from ethereum/develop
Merge develop into develop_060
2019-11-19 15:30:31 +01:00
chriseth
6797879128
Merge pull request #7647 from ethereum/virtual-5424
Implement virtual keyword
2019-11-19 13:21:27 +01:00
Leonardo Alt
d818746e0c [SMTChecker] Fix ICE in abi.decode 2019-11-18 13:15:10 +01:00
Daniel Kirchner
a0ae36ba70 Add selector member to public and external library functions. 2019-11-15 16:12:29 +01:00
chriseth
c569a80fb0 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 18:38:18 +01:00
chriseth
8f2a94bdff Set version to 0.5.14. 2019-11-14 18:24:16 +01:00
chriseth
216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
chriseth
42338a5964
Merge pull request #7715 from ethereum/prepare0513
Prepare 0.5.13
2019-11-14 13:40:10 +01:00
chriseth
766309b6e4
Merge pull request #7713 from ethereum/no-lib-instance-7625
Disallow variables of library types
2019-11-14 13:39:56 +01:00
Mathias Baumann
0891b9451b Disallow variables of library types 2019-11-14 13:20:31 +01:00
chriseth
7d0b552948 Prepare 0.5.13 2019-11-14 13:20:28 +01:00
chriseth
8d46f39643
Merge pull request #7707 from ethereum/smt_ice_implicit_conversion
[SMTChecker] Fix ICE in string literal to fixed bytes conversion
2019-11-14 11:52:58 +01:00
Mathias Baumann
5b8ff78176 Implement virtual keyword 2019-11-14 11:49:39 +01:00
Leonardo Alt
5f43b8dbeb Output the storage layout of a contract via storageLayout artifact 2019-11-14 10:19:17 +01:00
Leonardo Alt
8efacfb545 [SMTChecker] Fix ICE in string literal to fixed bytes implicit conversion 2019-11-13 22:25:18 +01:00
chriseth
f9b208c85d Sort changelog. 2019-11-13 17:50:10 +01:00
chriseth
c4441bac5b
Merge pull request #7705 from ethereum/list-overloads-7146
List candidates when overload failed
2019-11-13 17:35:37 +01:00
Mathias Baumann
15df2b30d7 List candidates when overload failed
fixes #7146
2019-11-13 15:54:36 +01:00
Leonardo Alt
e3652627fd [SMTChecker] Fix ICE in CHC when function used as argument 2019-11-13 15:11:30 +01:00
djudjuu
e437443645 Inline assembly to AST json export 2019-11-13 12:13:22 +01:00
Daniel Kirchner
ce7268272d Allow obtaining the address of a library by conversion to `address`. 2019-11-12 17:09:13 +01:00
chriseth
2e5a42836c
Merge pull request #7681 from ethereum/develop
Merge develop into develop_060
2019-11-11 16:42:03 +01:00
Leonardo Alt
5dacaf57bc Fix ICE in FixedBytes IndexAccess 2019-11-08 17:29:40 +01:00
chriseth
138ee647f1 Provide different options for reason strings. 2019-11-07 14:13:53 +01:00
chriseth
c0b27d0bc1
Merge pull request #7648 from ethereum/inlineAssemblyShadowing
Error on shadowing and invalid names in inline assembly
2019-11-07 13:31:09 +01:00
Daniel Kirchner
0556f64722 Analyze inline assembly variable declarations for invalid or shadowing names. 2019-11-07 13:04:37 +01:00
chriseth
21e65076b3
Merge pull request #7650 from ethereum/develop
Merge develop into develop_060
2019-11-06 21:56:55 +01:00
Cory Dickson
f9603521a4 Update Changelog.md
author:@erak

Co-Authored-By: Erik K <erik@zirkular.io>
2019-11-06 21:45:15 +01:00
cd10012
16fe59b7b4 Implement @erak review notes by creating function and adding constructor test
Update 060 doc with natspec change

Add two more tests with mixed usage

Fix solc-js

fix changelog
2019-11-06 21:44:59 +01:00
cd10012
f598b1515f Give unamed parameters unique keys and update tests to new spec
Fix whitespace
2019-11-06 21:44:34 +01:00
Leonardo Alt
10e70b8603 [SMTChecker] Support inheritance and resolve overrides 2019-11-06 11:00:06 +01:00
chriseth
587c87b15b Commandline interface additions for webassembly binary. 2019-11-05 20:05:57 +01:00
chriseth
cb2096c82a Add modifier depth to source mappings. 2019-11-05 16:50:38 +01:00
chriseth
62da1877ef Fix changelog from develop. 2019-11-05 14:18:32 +01:00
Leonardo Alt
c5e081dc8c [SMTChecker] Refactor CHC loops and add if blocks 2019-11-05 09:28:59 +01:00
chriseth
46ac16d25c Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-04 19:09:11 +01:00
Leonardo
1eac3d1d83
Merge pull request #7582 from ethereum/smt_multid_array_assignment
[SMTChecker] Support assignments to m-d arrays and mappings
2019-11-04 17:37:33 +01:00
Daniel Kirchner
3321fc56ea Split fallback function and introduce "fallback()" and "receive()" syntax. 2019-11-04 17:17:58 +01:00
Alexander Arlt
569422d2c2 Add Changelog entry. 2019-11-01 14:54:47 -05:00
chriseth
5d6e983be3 Conditional simplifier. 2019-11-01 14:01:56 +01:00
Mathias Baumann
6c6a9054b2 Implement override checking 2019-10-30 17:31:33 +01:00
chriseth
ceb8ee9124 [Yul] leave statement. 2019-10-29 14:32:16 +01:00
Leonardo Alt
8a42e3f87a [SMTChecker] Support assignments to m-d arrays and mappings 2019-10-28 17:27:39 +01:00
chriseth
607bf24afe
Merge pull request #7386 from ethereum/060-strict-inline-assembly
Defaulting to strict inline assembly (instead of loose)
2019-10-28 12:48:58 +01:00
chriseth
07c67b98f6 Merge remote-tracking branch 'origin/develop' into HEAD 2019-10-28 12:12:52 +01:00
Henry Lee
24cbb4dd17 Treat magic variables as unknown identifiers in inline assembly
This fixes #4575. For keywords such as 'super' and 'this', will be
treated as unknown identifiers.
2019-10-28 14:59:50 +11:00
Christian Parpart
99034abcbf ChangeLog: Adds entry changing inline assembly to strict mode. 2019-10-25 15:01:25 +02:00
Mathias Baumann
c3e8023ad5 Fix wrong assert in overflow check 2019-10-23 14:59:34 +02:00
Mathias Baumann
6ac12afd06 Disallow call of same-class-ctor as modifier 2019-10-23 10:29:41 +02:00
Mathias L. Baumann
7e01696030
Merge pull request #7554 from ethereum/develop
Merge develop into develop_060
2019-10-21 17:05:12 +02:00
chriseth
ebfe7391ff Use selfbalance for `address(this).balance`. 2019-10-16 14:25:56 +02:00
chriseth
f884373142 Merge branch 'origin/develop' into develop_060 2019-10-02 16:29:36 +02:00
chriseth
5b9b28fdf0 Set version to 0.5.13 2019-10-01 21:02:23 +02:00
Daniel Kirchner
7202ebb5b2 Fix internal compiler error for arrays of recursive structs. 2019-10-01 16:51:14 +02:00
chriseth
a3dacc4d8b Update changelog for 0.5.12 release. 2019-10-01 15:54:10 +02:00
Christian Parpart
00d7dac15f Fixes source location in warning for shadowing import delcarations. 2019-09-30 11:45:46 +02:00
Christian Parpart
f85f6ba7e0 Fixes doxygen style multiline comment parsing for files with CRLF as line terminators. 2019-09-25 12:59:46 +02:00
chriseth
f3c4f466f6 Merge remote-tracking branch 'origin/develop' into develop_060
Had to adjust gas costs during merge.
2019-09-24 10:28:22 +02:00
Leonardo Alt
43d6e00b14 Add push() for dynamic storage arrays 2019-09-17 13:47:33 +02:00
chriseth
c224b09bb3 Fix reordering bug in optimizer. 2019-09-17 12:33:00 +02:00
chriseth
5b3efee93b
Merge pull request #7442 from ethereum/develop
Merge develop into develop_060
2019-09-17 12:16:27 +02:00
Leonardo Alt
eab9f65610 Fix ICE when pop dyn storage array of mapping 2019-09-16 16:33:17 +02:00
Leonardo Alt
d685554980 Create option for metadata hash 2019-09-13 18:59:12 +02:00
Leonardo Alt
e1c238e25f [SMTChecker] Add loop support 2019-09-13 12:40:53 +02:00
Daniel Kirchner
4782c800ec Initial introduction of array slices with partial implementation for dynamic calldata arrays. 2019-09-13 10:57:53 +02:00
chriseth
acf10ef60f
Merge pull request #7393 from ethereum/develop
Merge develop into 0.6.0
2019-09-10 12:27:02 +02:00
Leonardo Alt
5cfe0b7670 Allow explicit conversion from address to address payable 2019-09-09 23:46:00 +02:00
Christian Parpart
59955bed5d Adds reserved keyword virtual, and adjusting affected tests/docs respectively. 2019-09-09 13:41:43 +02:00
chriseth
a272506a34
Merge pull request #7374 from ethereum/hexStringUnderscores
Allow  underscores in hex strings.
2019-09-09 11:48:46 +02:00
Daniel Kirchner
6f3341a204 Allow underscores in hex strings. 2019-09-06 17:58:35 +02:00
chriseth
9c72f25cce
Merge pull request #7368 from ethereum/errorReporter
Switch to new error reporter.
2019-09-06 15:53:29 +02:00
Daniel Kirchner
793b1890e8 `type field in ABI JSON no longer defaults to function` 2019-09-06 15:35:01 +02:00
Daniel Kirchner
f4d990e5be Drop constant and payable fields from ABI. 2019-09-06 14:42:09 +02:00
Daniel Kirchner
5d69bdf81e Remove ASTPrinter. 2019-09-06 12:38:55 +02:00
Daniel Kirchner
90d5c98272 Switch to new error reporter. 2019-09-06 11:28:36 +02:00
chriseth
fd687f50ff
Merge pull request #7353 from ethereum/develop
Update 0.6.0 from develop
2019-09-04 20:21:37 +02:00
chriseth
edbec012ae Activate load resolver. 2019-09-04 19:16:54 +02:00
krk
33f7f960cf Allow exponentials with signed base and unsigned power. 2019-09-04 17:32:47 +02:00
chriseth
8485a1abec Change ABI sorting order. 2019-09-04 13:06:09 +02:00
chriseth
635f638fde Changelog entry. 2019-09-02 17:41:51 +02:00
chriseth
c499758cd8
Merge pull request #7326 from ethereum/develop
Merge develop into 0.6.0 branch.
2019-09-02 16:11:20 +02:00
Daniel Kirchner
c5eedc9e0b Changelog entry. 2019-09-02 12:01:09 +02:00
chriseth
e86b5cf14e Replace byte(A, X) by zero if A >= 32 2019-08-29 15:35:34 +02:00
Daniel Kirchner
9f6fff2120 Replace casting of external functions to address by a member named "address". 2019-08-19 14:56:04 +02:00
Erik K
d3ea86b052
Merge pull request #7270 from ethereum/develop
Update develop_060 from develop
2019-08-16 13:15:24 +02:00
Leonardo Alt
1a70a46f9b [CHC] Add function blocks and check asserts 2019-08-15 12:25:15 +02:00
chriseth
acd4a1e3a6 Merge remote-tracking branch 'origin/develop' into develop_060 2019-08-15 12:19:43 +02:00
Daniel Kirchner
b0a5666b43 Better error messages when writing to expressions that cannot be written to. 2019-08-14 17:59:48 +02:00
Erik Kundt
f1da0f7ae9 Prepares 0.6.0 changelog and documentation. 2019-08-14 16:15:59 +02:00
chriseth
445376ef7c Set version to 0.5.12. 2019-08-13 00:18:10 +02:00
chriseth
755365396e Prepare changelog for release. 2019-08-12 14:49:35 +02:00
Leonardo Alt
360f868836 [SMTChecker] Fix literal string type mismatch 2019-08-10 21:51:46 +02:00
Leonardo Alt
4214cd1354 [SMTChecker] Fix ICE when reporting cex concerning state vars from different source files 2019-08-10 20:56:52 +02:00
Leonardo Alt
7b22496b1f [SMTChecker] Fix ICE when inlining functions that use state vars and are in a different source 2019-08-09 17:50:52 +02:00
mingchuan
15631a7fbe Split calldataEncodedSize into calldataEncodedSize, calldataEncodedTailSize and calldataHeadSize and fix all usages. 2019-08-08 15:52:21 +02:00
chriseth
6166dc8e8f
Merge pull request #6856 from rocky/recoveringParser1-ast
Produce AST even when there are parser errors
2019-08-07 15:56:45 +02:00
chriseth
c8f04b88bf
Merge pull request #7176 from ethereum/decodeMemoryLocation
Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode
2019-08-07 15:42:14 +02:00
rocky
7fd7cc1e76 Produce AST even when there are parser errors 2019-08-07 15:25:53 +02:00
Daniel Kirchner
efb34bdf22 Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode. 2019-08-06 14:11:14 +02:00
Leonardo
cd563e526a
Merge pull request #7122 from sifmelcara/expression-inliner-avoid-dup-expr
[Yul] ExpressionInliner: avoid duplicating expressions
2019-08-06 11:08:38 +02:00
Leonardo Alt
369f8cd97f [SMTChecker] CHC create function return variables 2019-08-05 12:36:51 +02:00
Leonardo
11632966c9
Merge pull request #7171 from ethereum/smt_fix_compound_bitwise
[SMTChecker] Fix ICE compound bitwise op inside branch
2019-08-05 12:15:01 +02:00
mingchuan
46387eaea2 [Yul] ExpressionInliner: avoid duplicating high cost expressions 2019-08-05 11:48:32 +02:00
Leonardo Alt
d5fb8cf58a [SMTChecker] Fix ICE compound bitwise op inside branch 2019-08-02 20:02:39 +02:00
Leonardo Alt
7b5863e583 Do not erase knowledge about storage pointers when another pointer is assigned 2019-08-02 13:09:06 +02:00
Leonardo Alt
44d7c6976a Erase pointer knowledge properly inside loops 2019-07-30 12:47:50 +02:00
Leonardo Alt
847f574e22 [SMTChecker] Fix ICE when inlining function with tuple expression 2019-07-26 16:29:29 +02:00
chriseth
a30be56c27 Additional type info for ABI. 2019-07-18 16:54:11 +02:00
chriseth
a0a0a34a21 Do not overwrite allowMSizeOptimization 2019-07-16 10:13:18 +02:00
chriseth
2a5280faa0 Check availability of data objects already in analysis phase. 2019-07-10 18:49:42 +02:00
chriseth
d3e542d32c Provide secondary source location for error messages in standard json. 2019-07-04 10:54:01 +02:00
chriseth
b837705259
Merge pull request #7018 from ethereum/compile_only_requested
Compile only requested sources and contracts
2019-07-03 14:11:42 +02:00
chriseth
2b91022b25 Fix view/pure checker for access to base. 2019-07-03 11:19:57 +02:00
Leonardo Alt
358368cd0c Tests for output selection 2019-07-03 09:58:55 +02:00
chriseth
cdd137e3d1 Support constant numbers in inline assembly. 2019-07-02 14:01:05 +02:00
Leonardo Alt
6f8fd309a2 Compile only requested sources and contracts 2019-07-01 18:52:21 +02:00
chriseth
89f0e1e6da Use updated swarm hash. 2019-06-27 12:49:06 +02:00
chriseth
edf62e4d2b Changelog entry. 2019-06-25 19:07:38 +02:00
chriseth
461b566603 Set version to 0.5.11. 2019-06-25 19:03:51 +02:00
chriseth
a03687ccfa Prepare changelog for 0.5.10 release. 2019-06-25 14:28:22 +02:00
chriseth
04fe3c070d Changelog and bug list entry. 2019-06-25 13:00:21 +02:00
chriseth
1388ffaeee Sort changelog. 2019-06-24 14:41:58 +02:00
chriseth
9bb7160c4c
Merge pull request #6958 from sifmelcara/fix-abiencoderv2-codegen
Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
2019-06-20 13:08:42 +02:00
chriseth
8edf9e4baf
Merge pull request #6666 from vedant1811/issue-5405
Group function definitions
2019-06-19 18:03:40 +02:00
Vedant Agarwala
5d6cbd97df [Yul] Directly jump over a series of function definitions
Implement a AbstractAssembly::setStackHeight function
Update the tests
Update Changelog
2019-06-19 12:40:11 +08:00
mingchuan
bfe074b2b1
Fix storage array abi encoding
Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
2019-06-19 10:46:05 +08:00
chriseth
6cb6fe35ef Make Yul optimizer not fail for wasm. 2019-06-17 18:42:47 +02:00
rocky
ca3afea1d7 Add Steve Johnson-style parser recovery rules:
SourceUnit = Error $
    Block = '{' Error '}'
    ContractDefinition = '{' Error '}'
    Statement = Error ';'

Co-Authored-By: chriseth <chris@ethereum.org>
2019-06-17 14:47:07 +02:00
Daniel Kirchner
7f322c9433 Add optimization rule SUB(~0, X) -> NOT(X). 2019-06-14 14:07:46 +02:00
Daniel Kirchner
4d38df6920 Set state mutability of function type members `gas and value` to pure. 2019-06-13 18:27:53 +02:00
Daniel Kirchner
a4dfaac53d Changlelog entry. 2019-06-07 10:45:01 +02:00
Daniel Kirchner
6368cd4c82 AsmParser: disallow trailing commas in function call arguments. 2019-06-06 13:16:27 +02:00
Daniel Kirchner
5677bedf34 Require gcc >= 5.0. 2019-06-05 11:57:06 +02:00
Daniel Kirchner
9f5340fa53 Try to find Z3 using CONFIG_MODE before manual search. 2019-06-04 15:58:03 +02:00
chriseth
d5b121e762
Merge pull request #6859 from ethereum/incrementVersion0510
Set version to 0.5.10
2019-05-28 20:38:31 +02:00
chriseth
4ee703e6e5 Revert "Add Steve Johnson-style parser recovery rules:"
This reverts commit 97f8ee0d1b.
2019-05-28 18:09:24 +02:00
chriseth
feab4065c3 Set version to 0.5.10 2019-05-28 17:31:06 +02:00
chriseth
61d2919968 Prepare version 0.5.9. 2019-05-28 15:38:48 +02:00
chriseth
f9dca1f282
Merge pull request #6681 from rocky/recoveringParser1
Add Steve Johnson-style parser recovery rules:
2019-05-28 15:36:45 +02:00
rocky
97f8ee0d1b Add Steve Johnson-style parser recovery rules:
SourceUnit = Error $
    Block = '{' Error '}'
    ContractDefinition = '{' Error '}'
    Statement = Error ';'

Co-Authored-By: chriseth <chris@ethereum.org>
2019-05-28 15:06:34 +02:00
chriseth
a3f721bbcc
Merge pull request #6583 from ethereum/reset_yulstringrepo
Reset YulStringRepository regularly
2019-05-28 14:20:53 +02:00
chriseth
2276b567b1
Merge pull request #6840 from ethereum/discoverMSize
Only remove msize-modifying instructions if msize is not used.
2019-05-28 13:16:55 +02:00
Bhargava Shastry
dbae0fa939 Reset Yul string repository before each compilation. 2019-05-28 13:12:39 +02:00
chriseth
010bb39548 Changelog entry. 2019-05-28 12:54:33 +02:00
chriseth
c3cdae908d
Merge pull request #6767 from ethereum/constantOptimiserForYul
[Yul] Constant optimiser
2019-05-28 11:53:04 +02:00
chriseth
1c16124a09 Constant optimiser for Yul. 2019-05-28 11:35:07 +02:00
chriseth
5b1a984882 Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage. 2019-05-27 17:26:37 +02:00
chriseth
1a78aef055 Sort changelog. 2019-05-27 15:40:44 +02:00
mingchuan
bf8af89bba
Fix assignment of struct containing array of mappings 2019-05-25 01:33:49 +08:00
chriseth
7cf51876e2
Merge pull request #6812 from ethereum/asmCallvalue
Do not require payable for callvalue instruction.
2019-05-23 12:07:06 +02:00
chriseth
1e3878121a Do not inline recursive functions. 2019-05-22 18:15:21 +02:00
chriseth
7506b5752a Do not require payable for callvalue instruction. 2019-05-22 11:30:29 +02:00
chriseth
f2ae30f620 Fix handling of structs of dynamic size as constructor parameters. 2019-05-16 17:10:54 +02:00
chriseth
f6437a2016 Optimizer rules that combine shifts and masks. 2019-05-15 20:30:53 +02:00
chriseth
7756dd948f Changelog entry for adding ipfs links to metadata. 2019-05-15 14:23:20 +02:00
Daniel Kirchner
a5427bc63a Add optimizer rules for multiplication and division by left-shifted one. 2019-05-14 16:20:45 +02:00
chriseth
439a225cee Simplify single-run for loops to if statements. 2019-05-13 18:58:36 +02:00
Leonardo Alt
ef32bf185f [SMTChecker] Inline external function calls to this. 2019-05-09 16:53:30 +02:00
Leonardo
9e09b5d33b
Merge pull request #6679 from ethereum/smt_fix_ssa_reset
[SMTChecker] Fix ICE in touched vars
2019-05-09 12:17:32 +02:00
chriseth
0852ccc318
Merge pull request #4764 from ethereum/cbor-version
Store compiler version in CBOR metadata
2019-05-09 10:10:50 +02:00
Leonardo Alt
3d52a6ca68 [SMTChecker] Fix ICE in branch-inline function call-modify local variable 2019-05-09 09:15:11 +02:00
Alex Beregszaszi
e121c8f3c7 Store compiler version in CBOR metadata 2019-05-08 22:21:50 +02:00
Leonardo Alt
0b046897ae [SMTChecker] Fix unsupported type assignment 2019-05-08 14:28:23 +02:00
Leonardo Alt
3c7540ceb2 [SMTChecker] Support tuples with multiple var decls 2019-05-07 16:57:27 +02:00
Leonardo Alt
2139c20776 [SMTChecker] Support delete 2019-05-06 18:32:10 +02:00
Leonardo Alt
5440a53d4d [SMTChecker] Support tuples as function calls with multiple return values 2019-05-03 06:10:22 +02:00
chriseth
5bd3ed97bd
Merge pull request #6649 from ethereum/smt_tuple_asgn
[SMTChecker] Support tuple assignment
2019-05-02 18:43:16 +02:00
chriseth
e9f41d1148
Merge pull request #6604 from ethereum/library-self-delegatecall
Error on library calling itself externally
2019-05-02 17:25:25 +02:00
Leonardo Alt
204dcf1771 [SMTChecker] Support tuple assignments 2019-05-02 12:55:34 +02:00
chriseth
54775a7880
Merge pull request #6647 from ethereum/smt_tuple_decl
[SMTChecker] Support tuple type declaration
2019-05-02 12:49:50 +02:00
Erik Kundt
07744dbd12 Throws error on library calling itself externally. 2019-05-02 12:41:07 +02:00
chriseth
d4c4a473d8
Merge pull request #6622 from ethereum/warn-this-super
Issue warning for variables called `super` or `this`
2019-05-02 12:38:53 +02:00
Leonardo Alt
6c7527ac90 [SMTChecker] Support tuple type declaration 2019-05-02 12:05:21 +02:00
Mathias Baumann
cf35e5ba02 Issue warning for variables called super or this 2019-05-02 11:30:24 +02:00
Leonardo Alt
66655b87b0 [SMTChecker] Fix ICE in fixed point operations 2019-05-02 10:59:23 +02:00
Leonardo Alt
dd4e938265 [SMTChecker] Fix ICE in inherited state var 2019-05-02 10:03:12 +02:00
Leonardo Alt
a6db37ac9c [SMTChecker] Fix bad cast in base constructor modifier. 2019-04-30 18:48:13 +02:00
Leonardo Alt
9fb340fce4 Increase version number to 0.5.9 2019-04-30 18:38:19 +02:00
chriseth
23a071dfd4 Set release date, sort changelog entries and update bug list. 2019-04-30 14:14:44 +02:00
chriseth
ecb8dfb26c Forward-port 0.4.26 release notes and update bug list. 2019-04-30 11:31:12 +02:00
Leonardo Alt
371b37b660 Fix direct call to base class overloaded functions 2019-04-26 09:34:15 +02:00
chriseth
169b555a22
Merge pull request #6507 from ethereum/smt_address_members
[SMTChecker] Address members
2019-04-25 17:29:42 +02:00
chriseth
f9ec1231b6 Support period as part of identifiers for Yul and Inline Assembly. 2019-04-25 16:48:16 +02:00
chriseth
309d3e65cf
Merge pull request #6585 from ethereum/fixInvalidFunctionTags
Fix invalid function tags
2019-04-25 16:30:37 +02:00
Leonardo Alt
fc482de695 [SMTChecker] Support address members 2019-04-25 16:24:36 +02:00
chriseth
5b991c1e59 Fix use of uninitialized functions stored in storage. 2019-04-25 15:40:48 +02:00
chriseth
f26cdea6ca Disallow Yul function definitions inside for loop init blocks. 2019-04-25 10:32:00 +02:00
Leonardo Alt
dd1afeba52 [SMTChecker] Support this as address 2019-04-18 17:56:52 +02:00
rocky
b06b996461 soltest.sh, EthOptions.cmake, and CODING_STYLE.md tweaks
solidity.sh:
  * introduce SOLIDITY_BUILD_DIR env var for soltest.sh,
  * add --help output

EthOptions.cmake: more complete configuration information

CODING_STYLE.md: note existence of .editorconfig
contributing.rst: note that tests are Boost C++ unit tests
2019-04-18 07:53:28 -04:00
chriseth
fce19bde58
Merge pull request #6545 from ethereum/smt_contracts
[SMTChecker] Support contract type
2019-04-18 13:01:18 +02:00
chriseth
fb302c1c4f
Merge pull request #6473 from ethereum/libeventhash-6435
Fix external ABI type name for contracts
2019-04-18 12:53:34 +02:00
Mathias Baumann
0f4b53e9a0 Fix external ABI type name for contracts 2019-04-18 11:39:48 +02:00
Leonardo Alt
ecd89393ee [SMTChecker] Support contract type 2019-04-17 16:30:11 +02:00
chriseth
922ab0d72d
Merge pull request #6534 from ethereum/reuseLiteralContent-6472
Re-produce the original 'useLiteralContent' setting
2019-04-17 15:41:55 +02:00
Mathias Baumann
b24dd42e47 Re-produce the original 'useLiteralContent' setting 2019-04-17 14:54:51 +02:00
Erik Kundt
11087422d6 Adds --test | -t option to isoltest. 2019-04-17 11:36:14 +02:00
Leonardo Alt
af9f16e014 [SMTChecker] Support mod 2019-04-12 12:39:25 +02:00
Leonardo Alt
4fe303530a [SMTChecker] Show unsupported warning for asm blocks 2019-04-05 16:41:15 +02:00
chriseth
804c1553bf Changelog entry. 2019-04-05 13:41:40 +02:00
Daniel Kirchner
d0fda7ca7c
Merge pull request #6262 from ethereum/abiEncodeCalldataArray
ABIEncoderV2: implement encoding of calldata arrays and structs.
2019-04-04 14:51:45 +02:00
Daniel Kirchner
91a2a9a9c3 Implement ABI encoding of calldata arrays and structs. 2019-04-04 13:05:32 +02:00
chriseth
887112b1b0 Fix SSA for multi-assignments. 2019-04-04 12:06:04 +02:00
chriseth
8c570f31c5
Merge pull request #6442 from ethereum/smt_unary_inc_dec
[SMTChecker] Support unary inc/dec for array/mapping access
2019-04-04 11:45:13 +02:00
Alex Beregszaszi
43008dd08e Validate value types in decoder of ABIEncoderV2. 2019-04-03 11:32:02 +02:00
Leonardo Alt
aa9b9aa87e [SMTChecker] Support unary inc/dec for array/mapping access 2019-04-02 16:53:19 +02:00
Daniel Kirchner
ab8dfed144 Implement copying recursive structs from storage to memory. 2019-04-02 16:01:44 +02:00
Mathias Baumann
e20acf5d0a Yul Optimizer: Remove dead code 2019-04-01 17:16:04 +02:00
Mathias Baumann
5c66ccc179 Optimize obsolete ANDs in combination with certain SHIFTs 2019-03-29 10:08:05 +01:00
Alex Beregszaszi
84fbf605aa Replace shifts by larger than 255 with 0 2019-03-29 10:07:54 +01:00
chriseth
84251e5a22
Merge pull request #6405 from ethereum/smt_compound_assignment
[SMTChecker] Support arithmetic compound assignment operators.
2019-03-28 18:27:25 +01:00
Leonardo Alt
8721952ded Changelog entry 2019-03-28 16:22:18 +01:00
chriseth
a1d59dfb4c
Merge pull request #6371 from ethereum/smt_variable_usage_function_calls
[SMTChecker] Merge SSA state vars properly
2019-03-28 15:54:31 +01:00
Leonardo Alt
15269067b5 Support arithmetic compound assignment operators 2019-03-28 15:27:52 +01:00
Leonardo Alt
1d63b97857 Take inlined function calls into account when collecting touched variables 2019-03-28 14:32:47 +01:00
Christian Parpart
b8c6274179 [yul] Implements EVM codegen for break/continue plus respective tests & ChangeLog entry. 2019-03-28 14:09:25 +01:00
chriseth
e3218a3af8 Increment version number. 2019-03-26 15:30:22 +01:00
chriseth
79d7fb14e7 Preparation for 0.5.7 release. 2019-03-26 10:50:58 +01:00
chriseth
e0268a0658 Changelog entry. 2019-03-25 18:28:44 +01:00
chriseth
caddce6ef0 Detect duplicate cases based on integer value of case label. 2019-03-25 12:38:22 +01:00
Alex Beregszaszi
3bc2c35cc4 Support compiling Yul within StandardCompiler 2019-03-22 01:35:16 +00:00
Bhargava Shastry
f7b5a27581 Fixes bug in byte optimization rule and adds tests. 2019-03-21 14:29:06 +01:00
Mathias Baumann
8e899a0d32 Disallow internal function types as parameters for public/external library function 2019-03-21 07:25:57 +01:00
chriseth
9aab2329ed
Merge pull request #6244 from ethereum/smt_modifiers
[SMTChecker] Support modifiers
2019-03-20 18:04:28 +01:00
chriseth
8468dca0bb
Merge pull request #6323 from ethereum/bug-637
Fix function calls with named arguments for overloaded functions
2019-03-20 16:07:09 +01:00
chriseth
9ac117e5b9 Changelog entry. 2019-03-20 15:07:05 +01:00
Mathias Baumann
84b68006ba Fix function calls with named arguments for overloaded functions 2019-03-20 14:54:41 +01:00
Leonardo Alt
9659f40c8d [SMTChecker] Support modifiers 2019-03-20 11:32:20 +01:00
Leonardo Alt
3296fb3764 Add callstack to model report 2019-03-20 10:35:29 +01:00
Leonardo Alt
9acec99c31 Issue error for callvalue in nonpayable function 2019-03-19 20:45:27 +01:00
chriseth
6d1ed93247 Use stack optimizations. 2019-03-14 15:34:23 +01:00
Erik Kundt
ac5f860df9 Fixes hex string update via isoltest. 2019-03-14 11:01:26 +01:00
Erik Kundt
470c161e50 Fixes boost repository URL in CentOS install script. 2019-03-13 19:55:36 +01:00
chriseth
2e7794d8a6 Defensively pad memory for `type(C).name` to multiples of 32. 2019-03-13 18:51:32 +01:00
chriseth
94aa971bd5 Set version to 0.5.7. 2019-03-13 18:38:30 +01:00
chriseth
2896d6176b
Merge pull request #6120 from ethereum/soltest-hex-strings
[soltest] Add support for hex string literals
2019-03-13 14:12:32 +01:00
Christian Parpart
b29bb6ccb1
Merge pull request #6258 from ethereum/prepare056
Prepare 0.5.6 release.
2019-03-13 13:12:17 +01:00
Erik Kundt
25ddf85d95 Adds support for hex string literals in soltest. 2019-03-13 12:37:33 +01:00
chriseth
4c1a9aa273
Merge pull request #6256 from ethereum/completeLtGtRules
Complete the GT/LT rules.
2019-03-13 12:08:34 +01:00
chriseth
addb3603c7 Prepare 0.5.6 release. 2019-03-13 12:05:26 +01:00
chriseth
571f400a3e Complete the GT/LT rules. 2019-03-13 12:01:23 +01:00
Bhargava Shastry
515fa872c8 Fixes u256 overflow in logical shift optimization rule and adds tests. 2019-03-13 11:19:20 +01:00
chriseth
243096f6b5 Changelog cleanup. 2019-03-12 17:12:12 +01:00
chriseth
8445449c7f
Merge pull request #6187 from ethereum/filter-library-abi-3409
Exclude internal functions in library ABIs
2019-03-11 17:39:51 +01:00
chriseth
6683ec90ca
Merge pull request #6209 from ethereum/dynamicCalldataStructs
Allow dynamically encoded calldata structs with ABIEncoderV2.
2019-03-11 17:05:34 +01:00
Daniel Kirchner
66fc7ffab2 Allow dynamically encoded calldata structs with ABIEncoderV2. 2019-03-11 16:40:13 +01:00
Mathias Baumann
fbbd03dbd7 Exclude internal functions in library ABIs 2019-03-11 16:33:44 +01:00
Alex Beregszaszi
189983a1b8
Merge pull request #6238 from ethereum/reset-version
Reset version to 0.5.6.
2019-03-11 15:56:00 +01:00
Daniel Kirchner
f805939429
Merge pull request #6221 from ethereum/soltest-signature-struct-arrays
[soltest] Allow struct array in function signatures
2019-03-11 15:32:42 +01:00
chriseth
ba56c307bf Reset version to 0.5.6. 2019-03-11 14:48:27 +01:00
Erik Kundt
cd9c0914cb Allows struct array in soltest function. 2019-03-11 14:36:16 +01:00
Mathias Baumann
d70cb375cf isImplicitlyConvertibleTo(): Add better error messages 2019-03-11 13:38:02 +01:00
Leonardo Alt
a8209e9899 [SMTChecker] Shortcut RationalNumber expressions 2019-03-11 12:53:49 +01:00
chriseth
e0d1b2f5b3 Peephole optimizer for "iszero iszero <tag> jumpi". 2019-03-07 15:52:02 +01:00
Leonardo Alt
02d0e609b9 [SMTChecker] Support enums 2019-03-07 15:15:12 +01:00
chriseth
0f336f30ca
Merge pull request #6207 from ethereum/fixStructuralVisitationOrder
Fix visitation order bug for structural simplifier.
2019-03-06 21:29:17 +01:00
chriseth
0f7b1b31a1
Merge pull request #5996 from ethereum/calldataArrays
Allow calldata arrays with dynamically encoded base type.
2019-03-06 19:55:57 +01:00
chriseth
21115f8050 Fix visitation order bug for structural simplifier. 2019-03-06 19:34:07 +01:00
Mathias Baumann
21322dae29 YulOpt: Remove empty cases 2019-03-06 19:02:23 +01:00
chriseth
3ccf73b3eb
Merge pull request #6204 from ethereum/soltest-signature-arrays
[soltest] Add support for arrays in function signatures
2019-03-06 18:12:39 +01:00
Daniel Kirchner
f7c6eda2c3 Allow calldata arrays with dynamically encoded base type. 2019-03-06 18:04:12 +01:00
chriseth
cdf29277f7
Merge pull request #6055 from ethereum/smt_arrays
[SMTChecker] Add support to arrays
2019-03-06 18:00:23 +01:00
Erik Kundt
ab31c28ed9 Adds support for arrays in function signatures. 2019-03-06 16:47:00 +01:00
Leonardo Alt
297703bc44 Changelog entry 2019-03-06 11:29:54 +01:00
Mathias Baumann
9919670ddd Check base contracts for abi encoder compatibility 2019-03-06 11:16:54 +01:00
chriseth
77c3352744 Some missed entries and set version to 0.6.0. 2019-03-05 17:08:16 +01:00
Erik Kundt
d778471ef0 Updates Changelog for 0.5.5 release. 2019-03-05 15:11:37 +01:00
chriseth
6c9961e040
Merge pull request #5941 from ethereum/metadata-compilerstack
Metadata should not require compilation
2019-03-04 18:53:07 +01:00
chriseth
9c80f0fc76
Merge pull request #6155 from ethereum/defaultToPetersburg
Set default EVM version to petersburg
2019-03-04 17:36:42 +01:00
chriseth
34082a2368
Merge pull request #6159 from ethereum/more-optims
More optimiser rules for LT/GT/AND/BYTE and address cleanups
2019-03-04 16:24:38 +01:00
Alex Beregszaszi
fcbb8ec51c Allow returning metadata in StandardCompiler without compilation 2019-03-04 16:19:55 +01:00
chriseth
9a949c1bda Set default EVM version to Petersburg. 2019-03-04 14:53:00 +01:00
Alex Beregszaszi
1272951bbb Do not mask with 160-bits after CREATE/CREATE2 2019-03-04 14:42:29 +01:00
Alex Beregszaszi
7aa2ee1775 More optimiser rules for LT/GT/AND/BYTE 2019-03-04 14:42:29 +01:00
Alex Beregszaszi
ecd246aeb6 Support petersburg in evmVersion 2019-03-04 14:10:41 +01:00
chriseth
8f5e12c192 Make unavailable opcodes errors. 2019-02-28 22:20:01 +01:00
Mathias Baumann
c686a65876 Yul Optimizer: reduce switches with const arguments 2019-02-28 15:43:10 +01:00
chriseth
477c53a46f Fix expression simplifying by moving from SSAValueTracker to DataFlowAnalyzer as a base. 2019-02-27 16:14:39 +01:00
chriseth
ebec54aacb
Merge pull request #6093 from ethereum/mapping-string-keys
Allow dynamic types in public mappings
2019-02-26 17:05:18 +01:00
chriseth
4e74c508ce
Merge pull request #6089 from ethereum/extcodehash
Consider extcodehash as part of Constantinople
2019-02-26 17:04:01 +01:00
Mathias Baumann
e4a52aa2f6 Allow dynamic types in public mappings 2019-02-26 15:48:54 +01:00
Alex Beregszaszi
d2f493268b Provide access to the name of contracts. 2019-02-26 14:07:03 +00:00
Alex Beregszaszi
cb7b053a4a Consider extcodehash as part of Constantinople 2019-02-26 12:40:31 +00:00
Erik Kundt
2d0daae796 Disallows index access on contracts and libraries. 2019-02-25 23:05:33 +00:00
Alex Beregszaszi
4430fe6a54 Combine multiple shifts with constant shift-by values in the optimiser 2019-02-25 20:56:13 +00:00
chriseth
52ee955fba
Merge pull request #6073 from ethereum/const-opt-shift
Support shifts in the constant optimiser when Constantinople is targeted
2019-02-25 11:57:13 +01:00
Alex Beregszaszi
81d011335a Support shifts in the constant optimiser when Constantinople is targeted 2019-02-22 11:55:43 +00:00
Erik Kundt
f683ceb3f8 Adds support for boolean literals in soltest. 2019-02-21 23:28:48 +01:00
Erik Kundt
d40928f5fc Adds support for hex literals in soltest. 2019-02-21 17:04:40 +01:00
chriseth
947215a901 Take builtin functions into account in the compilability checker. 2019-02-21 12:13:42 +01:00
chriseth
7f6f958246 Fix: Also replace tags in the list of tags referenced from outside. 2019-02-20 15:06:23 +01:00
chriseth
03b8fcd7eb
Merge pull request #6042 from ethereum/fixEventSignatureInLibraries
Fix event signature in libraries
2019-02-20 14:59:21 +01:00
chriseth
e4ac27d9fe
Merge pull request #6016 from ethereum/shift-optim
Add more optimisation rules for shifts
2019-02-20 14:46:54 +01:00
chriseth
fb07462d82 Fix: Do use actual ABI signatures for events also in libraries instead of internal signature. 2019-02-20 14:35:24 +01:00
Alex Beregszaszi
fd936439a4 Add more optimisation rules for shifts 2019-02-20 11:59:15 +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
b4cd2d6a93 Properly detect name clashes with functions before their definition. 2019-02-18 14:51:05 +01:00
Erik Kundt
ff0653486d Increases version to 0.5.5. 2019-02-12 17:09:55 +01:00
Erik Kundt
1990d7034a Updates Changelog and buglist for the 0.5.4 release. 2019-02-12 12:21:46 +01:00
Bhargava Shastry
7751fa740f Ensure we fail gracefully when user tries to optimize Yul code 2019-02-12 11:21:02 +01:00
Daniel Kirchner
0e4912a203 ABIEncoderV2: Implement calldata structs without dynamically encoded members. 2019-02-11 15:46:58 +01:00
chriseth
299e3b5388 Changelog entry. 2019-02-11 11:37:48 +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
chriseth
bea695f3fc Changelog entry for Z3 version. 2019-02-07 14:25:50 +01:00
Christian Parpart
3d4b0f45da liblangutil: refactors SourceReferenceFormatter error formatting for pretty and colored output.
* Refactors output format in a way it is (or should at least be) more readable.
  (NB.: As source of inspiration, I chose the rustc compiler output.)
* Adds color support to the stream output.
* Also improves multiline source formatting
  (i.e. truncating too long lines, like done with single lines already)
* solc: adds flags --color (force terminal colors) and --no-color (disable autodetection)
* solc: adds --new-reporter to give output in *new* formatting (colored or not)
* Changelog adapted accordingly.
2019-02-07 12:55:14 +01:00
Erik Kundt
f90c6f57bb Implements a test file parser. 2019-02-06 17:22:40 +01:00
chriseth
5c50e8fa99 Switch from Z3 to CVC4 as SMT solver for Ubuntu PPA. 2019-02-06 15:48:07 +01:00
Mathias Baumann
9f431339ef Fix crash for too large struct array indicies 2019-02-06 11:50:25 +01:00
Mathias Baumann
77f407d450 Fix check that mappings can only have storage location 2019-02-05 18:06:42 +01:00
Alex Beregszaszi
554511b68e Introduce solidity_free in libsolc 2019-01-31 15:53:55 +00:00
chriseth
35483422f3 Pad code to multiple of 32 bytes. 2019-01-30 11:31:28 +01:00
Alex Beregszaszi
9aafa32825 Disallow empty import statements 2019-01-28 13:52:15 +00:00
chriseth
2e7274b49d
Merge pull request #5837 from ethereum/fixCalldataEncodedSize
Fix reported packed encoded size.
2019-01-24 13:10:27 +01:00
chriseth
e3791d6dcf Fix reported packed encoded size for arrays and structs. 2019-01-23 11:13:22 +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
70896deb67 Update version and changelog. 2019-01-22 16:46:25 +01:00
chriseth
43fb38a84e Update changelog for release. 2019-01-22 09:04:18 +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
Daniel Kirchner
870b656eda Split up rule list generation further to prevent issues in browsers with the emscripten build. 2019-01-18 17:02:47 +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
0b14d7a2d6
Merge pull request #5807 from ethereum/fixed_point_encoding
Return TypeError is fixed point encoding is attempted.
2019-01-17 23:47:07 +01:00
chriseth
2a92403690 Changelog entry. 2019-01-17 20:37:34 +01:00
Daniel Kirchner
5baac8470b Use emscripten 1.38.8 on both travis and circle. 2019-01-17 18:31:34 +01:00
Leonardo Alt
c96b760c47 Return TypeError is fixed point encoding is attempted. 2019-01-17 13:36:53 +01:00
Daniel Kirchner
1f06a94b5d Add missing Changelog entries for Yul switch changes. 2019-01-17 13:02:01 +01:00
Leonardo Alt
a10db051de [SMTChecker] Support basic typecast 2019-01-16 13:00:54 +01:00
Daniel Kirchner
0dfd4a726e Warn about unreachable code. 2019-01-10 10:36:50 +01:00
chriseth
937fc8538e Changelog entry. 2019-01-07 17:23:38 +01:00
chriseth
ef8a67919f Set version to 0.5.3 2018-12-20 07:25:52 +01:00
chriseth
9eeace3e37 Update changelog for release. 2018-12-19 17:02:58 +01:00
chriseth
900d100700 Changelog entry. 2018-12-19 14:59:29 +01:00
Mathias Baumann
c43d96f2bf Json: Provide better error messages for wrong types 2018-12-18 18:36:50 +01:00
chriseth
4e475cdbe9
Merge pull request #5625 from ethereum/single-check
Do check for callvalue only once if no payable functions
2018-12-18 11:36:58 +01:00
Mathias Baumann
1b8570f829 Only generate sort/search code when interface functions exist 2018-12-17 21:24:37 +01:00
chriseth
7b1a6798e6 Remove support for Visual Studio 2015. 2018-12-17 18:56:23 +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
chriseth
e85c3428b4
Merge pull request #5634 from ethereum/staticPPA
Replace trusty PPA build by static PPA build.
2018-12-12 18:43:08 +01:00
Daniel Kirchner
e00dfd8ae2 Update changelog and release checklist. 2018-12-12 17:53:31 +01:00
Leonardo Alt
8cd2ac8462 Disallow unknown JSON keys in standard-json 2018-12-12 17:32:42 +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
8c49d86e6b Changelog entry 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
Leonardo Alt
08737e43dc [SMTChecker] Use SymbolicFunctionVariable for uninterpreted functions 2018-12-11 11:28:25 +01:00
chriseth
ead13b1d21 Changelog entry. 2018-12-10 17:11:48 +01:00
Erik Kundt
b2afb8cdda Adds an additional message to failing type conversions. 2018-12-07 11:55:53 +01:00
chriseth
fb805ccca6 Changelog entry. 2018-12-06 14:51:25 +01:00
chriseth
d829794737 Improve yul error messages around number of arguments and variables. 2018-12-04 11:37:03 +01:00
chriseth
e7a0edbd97 Set version to 0.5.2. 2018-12-03 16:38:26 +01:00
chriseth
8d623dcca1 Massage changelog for 0.5.1 2018-12-03 14:16:34 +01:00
chriseth
eed353a367
Merge pull request #5558 from anurag-git/issue_5130
Fix internal compiler error for unimplemented base contract function.
2018-12-03 12:41:25 +01:00
chriseth
1502449b85
Add solc-js changes. 2018-12-03 12:30:08 +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
0668a9ecfb Public state variables are implementing external functions. 2018-12-03 10:46:03 +01:00
chriseth
6c44c5f0c9 Apply the optimize commandline parameter to assembly mode. 2018-11-30 23:39:05 +01:00
chriseth
17a703f71a Changelog entry. 2018-11-30 16:30: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
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
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
chriseth
463951e8cd
Merge pull request #5530 from ethereum/fix-ast-segfault
Fixes crash on empty runtime code.
2018-11-28 16:33:56 +01:00
Erik Kundt
50351fb8e2 Fixes crash on empty runtime code. 2018-11-28 14:41:16 +01:00
chriseth
d748165fb2
Merge pull request #5522 from juztin/develop
Builds both scratch & Alpine Docker images
2018-11-28 14:38:57 +01:00
chriseth
9ba3532eac Changelog entry. 2018-11-28 14:11:51 +01:00
chriseth
7cbf046864
Merge pull request #5358 from ethereum/yulObjects
[Yul] Yul objects parser
2018-11-28 11:33:29 +01:00
chriseth
69dcf1a5f7 Changelog entry. 2018-11-28 11:30:00 +01:00
Justin Wilson
9a2cb7bbc1 Added Docker updates to changelog 2018-11-27 13:50:00 -07:00
chriseth
fb2e471d00 Fix nondeterminism bug related to boost version. 2018-11-27 16:00:22 +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
chriseth
764d618c44
Merge pull request #5404 from ethereum/jumpFixes
Annotate jump from calldata decode to function as "jump in".
2018-11-26 16:08:04 +01:00
chriseth
ac5803bf3e Changelog entry and tests. 2018-11-26 12:41:26 +01:00
chriseth
2d0326aad2 Changelog entry. 2018-11-26 11:02:58 +01:00
chriseth
2e861bf1a0
Merge pull request #5472 from ethereum/assemblyAnnotationOutput
Jumps with annotations cannot be functional.
2018-11-23 17:02:03 +01:00
chriseth
bb10be789c Inject SMTLIB2 queries and responses via standard-json-io. 2018-11-23 09:43:49 +01:00
chriseth
69afd094ac Changelog entry. 2018-11-21 19:28:42 +01:00
chriseth
6ee764edcb Changelog entry. 2018-11-21 16:59:40 +01:00
Leonardo Alt
06c3f0953a [SMTChecker] Support bound function calls 2018-11-19 15:29:00 +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
Alex Beregszaszi
b4fcce0bde Do not build LLL unless requested via the LLL cmake option 2018-11-13 23:51:17 +00:00
chriseth
6c47b67319 Set version to 0.5.1. 2018-11-13 19:35:17 +01:00
chriseth
dd03d80173 Add release date to changelog. 2018-11-13 16:24:17 +01:00
Alex Beregszaszi
b6c3257752 Remove old libsolc API (compileJSON, compileJSONMulti, compileJSONCallback) 2018-11-13 13:54:01 +00:00
Daniel Kirchner
b5e9d849ef Ignore unimplemented functions for storage returns. 2018-11-13 12:18:22 +01:00
Erik Kundt
1d8e9af407 Fixes crash while encoding too large arrays. 2018-10-30 15:14:57 +01:00
mestorlx
9f9d6fdcc4 fix issue##5007 2018-10-15 14:26:15 -03:00
Leonardo Alt
e4851cf59e [SMTChecker] Inline calls to internal functions 2018-10-15 15:11:21 +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
6daeb39ecc Use hash for library placeholders. 2018-10-12 15:15:01 +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
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
Alex Beregszaszi
c4b5101b9d
Merge pull request #4676 from jwasinger/extcodehash
Add support for EXTCODEHASH
2018-09-28 00:04:40 +01:00
Chris Ward
d9b7fd1347 Add Mojave to dependencies script
Add changelog entry

Moved changelog item

Updates from review
2018-09-27 12:06:41 +03:00
Jared Wasinger
c6bd2979b1 Add assembly support for EXTCODEHASH (EIP-1052) 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
Erik Kundt
13a5890cc3 Updates changelog. 2018-09-22 00:41:07 +02:00
hydai
b409faa675
Disallow uppercase X in hex number literals 2018-09-19 22:01:15 +08:00
Alex Beregszaszi
0db76a01da CREATE2 opcode has been moved from 0xfb to 0xf5 2018-09-18 23:04:57 +01:00
hydai
3c4cfbf277
Fix typos in Changelog 2018-09-19 02:22:32 +08:00
Daniel Kirchner
a1d73a7bef Split simplification rules into two functions. 2018-09-18 14:28:21 +02:00
chriseth
2a083715d3 Changelog entry for array type conversion change. 2018-09-17 17:49:40 +02:00
chriseth
300ac9878f Merge branch 'release' into develop. 2018-09-13 22:54:57 +02:00
chriseth
6ed88d1bfe Update changelog. 2018-09-13 16:34:22 +02:00
Daniel Kirchner
12aaca1645 Add payable and non-payable state mutability to AddressType. 2018-09-13 15:15:49 +02:00
chriseth
8c56a5912b Set relase date of 0.4.25. 2018-09-12 18:38:16 +02:00
Daniel Kirchner
1ce3581a52 Accept `address payable` during parsing. 2018-09-11 14:52:23 +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
be713ed117 Changelog entry and bug list. 2018-09-10 14:37:58 +02:00
chriseth
b9164eaba2
Merge pull request #4937 from ethereum/fixNewline_0425
[backport] Fix newline bugs
2018-09-10 13:00:03 +02:00
chriseth
b84a1b390b Changelog entry and bug list. 2018-09-10 12:47:46 +02:00
chriseth
55e4532c72 Changelog. 2018-09-10 12:29:07 +02:00
Leonardo Alt
768ea5b0be Disallow indexed reference types in events when using ABIEncoderV2 2018-09-06 18:28:14 +02:00
Leonardo Alt
c577e043a4 Disallow structs in events without ABIEncoderV2 2018-09-06 17:11:53 +02:00
chriseth
507cdf6de2 Set version. 2018-09-06 16:55:53 +02:00
chriseth
4fb4846d1f Changelog. 2018-09-06 16:44: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
85debe77d9
Merge pull request #4866 from bakaoh/issue4743
Fix#4743: Incorrect source location for nameless parameters
2018-09-04 20:21:03 +02:00
Leonardo Alt
ac8892e0e3 Review suggestions 2018-09-04 12:14:04 +02:00
chriseth
de9f566a7c Update changelog. 2018-09-03 18:37:51 +02:00
Erik Kundt
75a92b0ffd Warns if modifier uses msg.value in non-payable function. 2018-09-03 18:35:57 +02:00
Leonardo Alt
4522c804f3 Disallow single statement var decl in if/while/for without blocks 2018-09-03 18:21:57 +02:00
bakaoh
3d7b0d691f Update test to correct source location for nameless parameters 2018-08-31 09:54:11 +07:00
Leonardo Alt
583e7156ba Dynamic type as mapping key returns error instead of assertion fail 2018-08-16 11:59:41 +02:00
chriseth
cc6fa6d61f
Merge pull request #4822 from ethereum/addressStaticCall
Add ``staticcall`` to ``address``.
2018-08-16 00:13:21 +02:00
Leonardo Alt
b6c839e817 Disallow indexed reference types in events when using ABIEncoderV2 2018-08-15 17:11:18 +02:00
Daniel Kirchner
7ca0aaaf6f Add `staticcall to address`. 2018-08-15 16:06:48 +02:00
chriseth
6c0261e6ab
Merge pull request #4390 from ethereum/abidecode
Add abi.decode
2018-08-15 12:31:26 +02:00
chriseth
6e139f7d1a Changelog entry. 2018-08-15 10:45:16 +02:00
bakaoh
3fa8829845 Fixes #4718: High CPU usage when using large variable names 2018-08-15 10:23:08 +02:00
chriseth
e3b6c5a4bd Update documentation. 2018-08-14 18:07:15 +02:00
Alex Beregszaszi
0b6a26f854 Calculate the dataGas correctly in the constant optimiser
This may cause a wrong decision about cost (and as a result choosing the least efficient code),
but will not cause any miscompilation or invalid output.
2018-08-14 17:45:43 +02:00
chriseth
3f42118d19
Merge pull request #4765 from ethereum/fixes-issue-4673
[WIP] Fixes issue where computing storage size for a number would take too long (or even cause a crash).
2018-08-14 17:34:04 +02:00
chriseth
ec7ccbdf86
Merge pull request #4782 from ethereum/encodePackedArrayOfStructs
Encode packed array of structs
2018-08-14 16:32:57 +02:00
Christian Parpart
43bda53410
Fixes issue where computing storage size for a number would take too long.
Fixes #4673.
2018-08-14 15:38:10 +02:00
Christian Parpart
81faafe7f2
Adds support for structs in interfaces.
Closes #4733.
2018-08-14 15:36:03 +02:00
chriseth
6ca3973944
Merge pull request #4777 from ethereum/typeConversionMemory
Defaul data location for type conversions is memory.
2018-08-14 11:36:19 +02:00
chriseth
3dd31b704a
Merge pull request #4798 from ethereum/mappingArgumentsAndReturns
Mapping arguments and returns
2018-08-13 17:27:29 +02:00
chriseth
ae8218543b
Merge pull request #4696 from ethereum/byteLiteralConversion
Disallow ambiguous implicit and explicit conversions from number literals to bytesXX
2018-08-13 17:25:30 +02:00
Daniel Kirchner
4ae59acc09 Consider mappings return values in control flow analysis. 2018-08-13 16:33:37 +02:00
Daniel Kirchner
a9f31da411 Allow mapping arguments and return values in all internal functions. 2018-08-13 15:50:22 +02:00
chriseth
bd567a22c9 Defaul data location for type conversions is memory. 2018-08-13 14:38:12 +02:00
Daniel Kirchner
57ada1d69e Allow mapping arguments and return values in internal library functions. 2018-08-13 14:31:10 +02:00
Daniel Kirchner
7d7abeb149 Disallow ambiguous conversions between number literals and bytesXX types. 2018-08-13 14:27:01 +02:00
Daniel Kirchner
954d7433bd Disallow remappings with empty prefix. 2018-08-10 19:26:48 +02:00
chriseth
499ec8b024 Changelog entry. 2018-08-09 21:16:51 +02:00
Daniel Kirchner
b6e352f694
Merge pull request #4767 from ethereum/cvc4Build
Add workarounds for building against CVC4 on ArchLinux.
2018-08-09 15:45:52 +02:00
chriseth
d634d20b5b
Merge pull request #4684 from ethereum/underscores_in_numeric_literals
[BREAKING] Underscores in numeric literals
2018-08-08 21:36:57 +02:00
Daniel Kirchner
46b0feb602 Add Changelog entry. 2018-08-08 19:29:25 +02:00
Alex Beregszaszi
3c791d637d Provide nicer error message when referencing overloaded references 2018-08-08 15:59:24 +01:00
Alex Beregszaszi
1bfb841771 Remove experimental 0.5.0 pragma 2018-08-08 14:05:36 +01:00
chriseth
de8e9114fd
Merge pull request #4740 from ethereum/enforceNumberOfReturnValues
Disallow empty return in function with return arguments.
2018-08-08 14:59:09 +02:00
Alex Beregszaszi
d2ca9c8206
Merge pull request #4754 from Rytiss/patch-1
Fix typo in Solidity name/url in the changelog
2018-08-08 11:28:04 +01:00
Balajiganapathi S
0000bfc604 Allow underscores in numbers. 2018-08-08 12:05:51 +02:00
Rytis Slatkevičius
7cc9ab7d72
Fix typo in Solidity name/url 2018-08-08 12:14:39 +03:00
Daniel Kirchner
cc83e69469 Disallow empty return expressions in functions with non-empty return parameters. 2018-08-07 20:48:07 +02:00
Daniel Kirchner
b11e39e25e Remove remaining instances of `fillRight` left over from tuple wildcards assignments. 2018-08-07 18:51:53 +02:00
chriseth
d7756322c0
Merge pull request #4731 from ethereum/interface-enum
Allow enums in interfaces
2018-08-07 17:20:05 +02:00
Alex Beregszaszi
a765b5b31c
Merge pull request #4720 from ethereum/abi-rational-type-identifier
Fix type identifiers for RationalNumberType (on negative numbers)
2018-08-07 14:25:11 +01:00
Alex Beregszaszi
13e37df97c Allow enums in interfaces 2018-08-07 13:28:53 +01:00
Alex Beregszaszi
b0f9fc5af0 Fix type identifiers for RationalNumberType 2018-08-07 13:23:14 +01:00
Alex Beregszaszi
eb7b3862ac Properly handle invalid references used together with _slot and _offset. 2018-08-07 13:18:38 +01:00
Alex Beregszaszi
8b2d630275
Merge pull request #4724 from ethereum/slot-in-assembly
Do not crash on using _slot and _offset suffixes on their own
2018-08-07 12:55:40 +01:00
Alex Beregszaszi
21ceac090a
Merge pull request #4592 from asifmallik/fixBackslashBugFinal
Fix backslash bug
2018-08-07 12:47:37 +01:00
Alex Beregszaszi
296ba24f7f Do not crash on using _slot and _offset suffixes on their own 2018-08-07 12:14:12 +01:00
chriseth
71e26f6adb Remove clone feature. 2018-08-07 11:10:50 +01:00
chriseth
276724dedc
Merge pull request #4663 from ethereum/dropConstantAST
[BREAKING] Drop constant field from JSON AST
2018-08-06 18:55:12 +02:00
Asif Mallik
fba7b7c204 Fix backslash bug 2018-08-06 18:17:56 +02:00
chriseth
9d03de1f25
Merge pull request #4671 from ethereum/mappingTupleAssignment
Disallow assignments to mappings within tuple assignments; allow for local variables.
2018-08-06 12:59:16 +02:00
chriseth
3576980710
Merge pull request #4644 from ethereum/event_struct_error
Disallow structs in events without ABIEncoderV2
2018-08-06 11:44:05 +02:00
Daniel Kirchner
44374a5846 Remove "constant" from JSON AST. 2018-08-06 11:15:25 +02:00
Christian Parpart
a4ee1dfc83
Merge pull request #4412 from ethereum/v050-reference-resolver-errorTypeForLoose
[BREAKING] permanently set errorTypeForLoose from Warning to SyntaxError
2018-08-03 19:30:33 +02:00
Daniel Kirchner
1e4b5886d6 Allow assignments to local variables of mapping types. 2018-08-03 16:22:03 +02:00
Daniel Kirchner
c0a169ca90 Disallow assignments to mappings within tuple assignments. 2018-08-03 15:46:26 +02:00
Leonardo Alt
20c6cea7bb Disallow structs in events without ABIEncoderV2 2018-08-03 13:41:27 +02:00
Daniel Kirchner
35c5b7de25 Turn warning about uninitialized storage returns into an error. 2018-08-02 19:34:38 +02:00
Christian Parpart
5d9320c70b Disallow loos assembly in Solidity by permanently setting it to SyntaxError (from Warning) 2018-08-02 13:36:05 +01:00
Daniel Kirchner
30d9961efb Do not exclude public state variables when looking for conflicting declarations. 2018-08-01 14:31:04 +02:00
Alex Beregszaszi
ce99a5ce7f
Merge pull request #4378 from ethereum/noBaseWithoutArguments
[BREAKING] Disallow calling base constructors without arguments.
2018-08-01 13:18:37 +01:00
chriseth
7e5406dd89 Disallow calling base constructors without arguments. 2018-08-01 12:28:27 +01:00
Christian Parpart
38f9667e09 Guard CycleDetector against recursion exhaustion.
fixes #3935.
2018-08-01 12:02:59 +01:00
chriseth
c8232d9759 Disallow conversion between unrelated contract types. 2018-08-01 11:04:35 +01:00
Leonardo Alt
210fee571f Fix crash when FunctionType has undeclared type as parameter 2018-07-31 11:17:51 +02:00
Alex Beregszaszi
de90290c28
Merge pull request #4527 from ethereum/mappingEnforceStorage
Enforces explicit data location for mappings
2018-07-23 20:43:38 +01:00
Erik Kundt
c622a1e56c Enforces data location of local mappings to storage. 2018-07-23 19:30:07 +02:00
Christian Parpart
9f35f0b805 Disallow functions without implementation to use modifiers. This was already the case in the experimental 0.5.0 mode. 2018-07-23 17:29:08 +01:00
chriseth
e3c2f20f6e
Merge pull request #4439 from ethereum/address_members
[BREAKING] Enforce address members not accessible by contract instance
2018-07-19 09:24:27 +02:00
Leonardo Alt
faa9c221d4 Changes in ExpressionCompiler 2018-07-18 19:51:24 +02:00
Erik Kundt
182a0a9551 Disallows old constructor syntax. 2018-07-18 14:29:01 +02:00
Erik Kundt
8b827af5bf Updates changelog to be more specific about visibility enforcement. 2018-07-18 12:03:25 +02:00
Erik Kundt
b5ecfbe5bc Enforces visibility specifier and updates docs. 2018-07-17 17:44:51 +02:00
Leonardo Alt
0075f4239a Address members not accessible by contract instance 2018-07-17 13:33:23 +01:00
Alex Beregszaszi
21e97da294 Deprecate the throw statement 2018-07-16 15:33:20 +02:00
Christian Parpart
396bf11858 enforce interface-functions to be external-declared
- libsolidity: Enforce interface-functions must be external-declared.
- Changelog adapted to reflect changes wrt. functions in interfaces.
- test: Adjustments according to prior interface-function changes.
- tests: Adapting SolidityEndToEndTest to interface-function change.
- docs: Adapted documentation to interface-function change.
2018-07-16 12:15:36 +02:00
chriseth
bab4a3975f
Merge pull request #4501 from ethereum/recursiveStructsWithFixedArrays
Consider fixed-size arrays when checking for recursive structs.
2018-07-13 01:26:50 +02:00
Daniel Kirchner
d936eebe50 Update Changelog. 2018-07-12 20:33:51 +02:00
Daniel Kirchner
f6f8fe6450 Add Changelog entry. 2018-07-12 20:14:30 +02:00
chriseth
6dcafac44e
Merge pull request #4447 from hosho/develop
Fix NatSpec json output for "@notice" and "@dev" tags on contract definitions
2018-07-12 18:42:30 +02:00
chriseth
81271801b4
Merge pull request #4478 from ethereum/requireStorageLocation
Turn missing storage locations into an error.
2018-07-12 18:00:05 +02:00
Matthew Little
a0d8459d95 Add changelog bugfix
For fixing NatSpec json output for "@notice" and "@dev" tags on contract definitions.
2018-07-12 14:39:23 +02:00
chriseth
fa8102880f
Merge pull request #4428 from ethereum/enforce_staticcall_view
[BREAKING] Enforce STATICCALL for view and pure
2018-07-12 13:14:02 +02:00
chriseth
576f3ef18c
Merge pull request #4083 from ethereum/variable_stack_slot
[BREAKING] Allocate local variables according to their scope
2018-07-12 13:01:15 +02:00
Daniel Kirchner
aa81ac4456 Update Changelog. 2018-07-12 12:54:42 +02:00
Daniel Kirchner
08d0c9b7d7 Add Changelog entry. 2018-07-11 18:53:16 +02:00
Leonardo Alt
38026d3114 Use STATICCALL for view and pure 2018-07-11 14:45:22 +02:00
chriseth
f3abfa81ad
Merge pull request #4454 from ethereum/constructorArgCount
[BREAKING] Wrong argument count in constructor call
2018-07-11 14:45:05 +02:00
chriseth
238dbe1b99
Merge pull request #4388 from ethereum/noPackedLiterals
Disallow packed encoding of literals.
2018-07-11 14:28:20 +02:00
Erik Kundt
038554abe0 Adds changelog entry. 2018-07-11 01:57:14 +02:00
Cryptomental
140dbfdbd8 Code, Changelog, ReleaseChecklist: Fix typos.
Refs: #4442
2018-07-11 00:26:23 +02:00
chriseth
d84976dc87
Merge pull request #4376 from ethereum/fallbackExternal
Fallback functions have to be external
2018-07-10 21:39:25 +02:00
chriseth
6567cd3e51
Merge pull request #4466 from ethereum/tupleNotEmpty
Disallow empty tuple components.
2018-07-10 21:03:30 +02:00
Leonardo Alt
1f77deada1 [050] Reserving and popping local vars in their scope 2018-07-10 18:39:38 +02:00
chriseth
32b44e10c5 Changelog entry. 2018-07-10 16:27:57 +02:00
Daniel Kirchner
833fc8955f Update changelog. 2018-07-10 15:28:06 +02:00
chriseth
7650905567
Merge pull request #4415 from ethereum/uninitializedStoragePointer
[BREAKING] Turn uninitialized storage variables into error.
2018-07-10 15:24:01 +02:00