Commit Graph

984 Commits

Author SHA1 Message Date
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
Daniel Kirchner
36022493df Add Changelog entry. 2018-07-10 12:17:01 +02:00
Daniel Kirchner
65631cffc2 Update documentation and Changelog. 2018-07-10 11:38:33 +02:00
chriseth
4747ef26fb
Add backticks to changelog. 2018-07-09 17:56:53 +02:00
Leonardo Alt
c1b67a845b Enforce error on hex number combined with unit denomination 2018-07-09 17:19:41 +02:00
Alex Beregszaszi
c42583d27e
Merge pull request #4366 from ethereum/libsolc-cleanup
Implement new libsolc API
2018-07-09 12:30:11 +02:00
chriseth
f3e0bf1dd8
Merge pull request #4418 from ethereum/initialConstants
Only allow compile-time constants for constant state variables.
2018-07-05 17:07:32 +02:00
chriseth
c8ac861832 Fix allocation of byte arrays. 2018-07-05 14:18:14 +02:00
Daniel Kirchner
d9a8f2aace Update documentation and Changelog. 2018-07-04 10:14:58 +02:00
chriseth
8ed3da1d5f Only allow compile-time constants for constant state variables. 2018-07-03 23:03:26 +02:00
chriseth
bc6b42a9f6 Changelog entry. 2018-07-03 22:51:57 +02:00
chriseth
533d5d4b1c
Merge pull request #4379 from ethereum/constructorArgsTwice
Disallow constructor arguments given multiple times.
2018-07-03 22:49:02 +02:00
Daniel Kirchner
a7fc8a996b Update Changelog. 2018-07-03 15:31:34 +02:00
Christian Parpart
0b5dd7320a Changelog: added `var`-keyword change 2018-07-03 10:53:09 +02:00
chriseth
f7a9c4203e Disallow packed encoding of literals. 2018-07-03 01:02:00 +02:00
chriseth
08aa7e47e4
Merge pull request #4305 from ethereum/transactionReceipts
Determine transaction status in RPC sessions.
2018-07-02 16:09:59 +02:00
Daniel Kirchner
334c023c72 Determine transaction status in RPC sessions. 2018-07-02 12:56:33 +02:00
chriseth
85b9d3927a
Merge pull request #4224 from ethereum/revert_wrong_calldata
[BREAKING] Revert if calldata has wrong size
2018-07-02 12:55:22 +02:00
Alex Beregszaszi
328554a4f9 Add new libsolc entry points (solidity_license/version/compile) 2018-06-29 19:30:37 +02:00
chriseth
f69e24c85e Disallow constructor arguments given multiple times. 2018-06-29 16:11:21 +02:00
Leonardo Alt
7763d21cc6 Revert if calldata is too short or points out of bounds 2018-06-26 10:27:48 +02:00
chriseth
237788c0bc Changelog entry. 2018-06-25 17:17:18 +02:00
Alex Beregszaszi
72e87423db Disallow the years unit denomination properly 2018-06-21 20:21:02 +02:00
chriseth
0d1047181d
Merge pull request #4306 from ethereum/remove_050_workaround_scoping
[BREAKING] C99 scoping rules by default (remove 050 workaround)
2018-06-21 13:57:59 +02:00
Alex Beregszaszi
7e4bd3e346
Merge pull request #4219 from ethereum/functionTypeNamedArguments
Turn named return parameters in function types into an error.
2018-06-20 23:51:19 +02:00
Leonardo Alt
8862b3092b C99 scoping rules by default 2018-06-20 12:53:38 +02:00
chriseth
ba7fbf11e7
Merge pull request #4300 from nventuro/optimize-out-and
Add TruthyAnd Peephole optimization
2018-06-20 11:38:37 +02:00
Alex Beregszaszi
a17059573f Disallow raw callcode (was deprecated in 0.4.12) 2018-06-19 19:31:07 +02:00
Daniel Kirchner
dbfee87860 Return parameters in function types may not be named. 2018-06-18 00:05:06 +02:00
Nicolás Venturo
172e208c6a Add TruthyAnd Peephole optimization 2018-06-15 11:27:39 -03:00
Daniel Kirchner
0319b184ce Add difficulty field to genesis chain parameters to fix ipc tests for recent versions of cpp-ethereum. 2018-06-14 16:46:10 +02:00
chriseth
baeabe1c2d
Merge pull request #4282 from ethereum/cli-yul
[BREAKING] Renamed the --julia CLI option to --yul
2018-06-14 08:42:37 +02:00
Christian Parpart
a211b89118 Enforce disallowing empty structs
This patch enfoces an error when it encounters an empty struct,
effectively eliminating the deprecation warning.

Also adjust 419_interface_structs to explicitely test for (non-empty) structs,
as this behaviour "may" change in the future.
2018-06-14 00:24:43 +01:00
Alex Beregszaszi
ba2a7294d8 Renamed the --julia CLI option to --yul 2018-06-14 00:09:00 +01:00
Alex Beregszaszi
2625f282b9 Remove obsolete --formal option from CLI 2018-06-13 01:00:51 +01:00
chriseth
1dc28c065d Properly pad data from calldata. 2018-06-12 18:51:40 +01:00
Alex Beregszaszi
9de45383d8 Disallow sha3/suicide aliases 2018-06-12 18:16:18 +01:00
Alex Beregszaszi
0e23b5e954 Tidy up changelog for 0.5.0 2018-06-12 17:08:39 +01:00
Alex Beregszaszi
d1e7e9ef5e
Merge pull request #3627 from ethereum/additional-keywords
[BREAKING] Add new reserved keywords.
2018-06-12 16:33:26 +01:00
chriseth
2c8eca5dcf
Merge pull request #4265 from ethereum/remove-std
Remove obsolete 'std' directory
2018-06-12 16:59:51 +02:00
Daniel Kirchner
e4b7b2160e Add new reserved keywords. 2018-06-12 16:02:53 +02:00
Daniel Kirchner
f33dc92cbd Use proper SAR for signed right shifts and emulate on pre-constantinople. 2018-06-12 09:32:19 +01:00
Erik Kundt
2e9f5d1c98 Introduces emit token and removes identifier workaround. 2018-06-11 21:21:22 +01:00
Alex Beregszaszi
99c585fd8a Remove obsolete 'std' directory 2018-06-11 20:11:10 +01:00
Alex Beregszaszi
0f572159ec Show named argument name in error 2018-06-06 15:59:27 +01:00
Jason Cobb
6e29775d39 Remove suicide and sha3 assembly instructions 2018-06-04 01:04:48 +01:00
chriseth
0a1a8bfb09
Merge pull request #4172 from ethereum/trailing_dot
[BREAKING] Disallow trailing dot not followed by number
2018-05-30 18:51:52 +02:00
chriseth
5a73044fa7
Merge pull request #3743 from ethereum/popStorageArray
pop() for storage arrays
2018-05-30 18:32:08 +02:00
Erik Kundt
98d52beba3 Adds syntax tests, documentation and changelog entry.
Refines comment for array utility function.
2018-05-30 17:43:20 +02:00
Leonardo Alt
ac68710789 Disallow trailing dots that are not followed by a number 2018-05-30 15:14:53 +01:00
chriseth
b708054c3e
Mention calldata as new keyword. 2018-05-30 14:43:59 +02:00
mingchuan
b7cafcbdf9
Allow using calldata keyword to specify data location 2018-05-30 18:05:55 +08:00
Daniel Kirchner
f627dc77d0 Fix continue inside do-while. 2018-05-16 18:32:48 +02:00
chriseth
c911e08283 Missed changelog entry. 2018-05-16 18:32:47 +02:00
Daniel Kirchner
5c59d56335 Disallow conversions between bytesX and uintY of different size. 2018-05-16 18:32:47 +02:00
Leonardo Alt
a19b516b2b Add syntax tests and Changelog entry 2018-05-16 18:32:47 +02:00
chriseth
9705678269 Merge pull request #3987 from ethereum/solc_remove_stdin
BREAKING Solc: read from stdin only if "-" is explicitly given
2018-05-16 18:32:44 +02:00
chriseth
e6a9d0da66 Initial changelog for version 0.5.0. 2018-05-16 18:32:32 +02:00
chriseth
3aee975e88 Set version to 0.4.25 - tentatively. 2018-05-16 17:54:07 +02:00
chriseth
80d688ace0 Split changelog into language and compiler features and set release date. 2018-05-16 10:34:15 +02:00
chriseth
894122c508 Warn/enforce single bytes argument for certain builtins (hashing functions).
In 0.5.0 mode, only accept a single bytes argument for ``.call``,
``keccak256`` and others and do not pad when encoding.
2018-05-16 09:48:03 +02:00
chriseth
67d208d144 Parse multi variable declaration statement. 2018-05-16 03:22:45 +02:00
chriseth
2ba0002998
Merge pull request #4139 from ethereum/abiEncodeIsPure
ABI encoding functions are pure and should be usable in constants.
2018-05-15 16:59:48 +02:00
chriseth
63861aac4a
Merge pull request #3947 from ethereum/smt_storage
[SMTChecker] Support to integer and Bool storage vars
2018-05-15 14:54:41 +02:00
chriseth
dac0029d16 ABI encoding functions are pure and should be usable in constants. 2018-05-15 14:45:54 +02:00
chriseth
dce6224052
Merge pull request #4062 from ethereum/revert-variable
Fix revert with reason coming from a string variable
2018-05-15 14:44:39 +02:00
Leonardo Alt
4117e859eb [SMTChecker] Declaring all state vars before any function is visited 2018-05-15 14:28:08 +02:00
Leonardo Alt
2dbb35d4a8 [SMTChecker] Support to integer and Bool storage vars 2018-05-15 14:22:50 +02:00
Daniel Kirchner
d7d71a14df Add Changelog entry. 2018-05-14 20:23:40 +02:00
Alex Beregszaszi
c03a29dea8 Fix revert with reason coming from a string variable 2018-05-09 17:53:17 +02:00
Daniel Kirchner
1a014f83cc Prefer view over constant in the documentation. 2018-05-09 15:06:47 +02:00
Daniel Kirchner
02380113d4 Use the entire token as source location for parser errors. 2018-05-09 14:08:22 +02:00
chriseth
54aa10ce36
Merge pull request #4054 from ethereum/token-names
Improve parser error messages
2018-05-09 11:06:23 +02:00
chriseth
fba7e055d9 Follow highest gas usage only for gas estimation. 2018-05-09 10:53:30 +02:00
chriseth
fe12f05c08 Deprecate wildcard assignments. 2018-05-08 15:13:32 +01:00
chriseth
a6868510ed Initial changelog for version 0.5.0. 2018-05-04 16:35:24 +02:00
Alex Beregszaszi
e3279d8af8 Display nicer error messages in the parser (display tokens and not internal names) 2018-05-04 12:39:37 +01:00
Alex Beregszaszi
ffe7f224a6 Show proper error when trying to emit a non-event 2018-05-04 12:47:01 +02:00
Alex Beregszaszi
22bfd3da41 Use native shift instructions on Constantinople 2018-04-30 20:34:43 +01:00
chriseth
d1e1293fbd
Merge pull request #3981 from ethereum/years-suffix
The "year" denomination is deprecated
2018-04-24 12:12:03 +02:00
chriseth
e685f9f59e
Merge pull request #3976 from ethereum/emptyTupleComponent
Empty tuple components should not be possible
2018-04-23 17:35:00 +02:00
Alex Beregszaszi
1ac0090f31 The "year" denomination is deprecated 2018-04-23 16:19:51 +01:00
Erik Kundt
b2ff9bc88d Turns it into warning (error for 0.5.0) and adds Changelog entry. 2018-04-23 17:09:42 +02:00
Alexander Arlt
0b49fd3493 CMake: Update jsoncpp to v1.8.4 2018-04-23 11:10:39 +01:00
Alex Beregszaszi
069ea38916 Make literals an error for tight packing (experimental 0.5.0) 2018-04-20 11:58:16 +01:00
Alex Beregszaszi
38460d8b47 Remove unnecessary masking of the result of known short instructions 2018-04-19 23:59:06 +01:00
chriseth
0759206b11 Set version to 0.4.24 2018-04-19 17:50:13 +02:00
chriseth
a79c9a1dfe Prepare 0.4.23 release. 2018-04-19 17:21:34 +02:00
chriseth
2546a274ca
Merge pull request #3941 from ethereum/bytes-contract
Disallow explicit conversion of bytesXX to contract
2018-04-19 16:10:15 +02:00
Alex Beregszaszi
754d79edfa Disallow explicit conversion of bytesXX to contract 2018-04-19 15:58:14 +02:00
chriseth
a94945dfe4 Improve error message for failed member lookup. 2018-04-18 22:56:45 +01:00
chriseth
4895864302 Warn about functions named "constructor". 2018-04-18 21:23:09 +02:00
Alex Beregszaszi
cd17c37fe6
Merge pull request #3925 from ethereum/supportBionic2
Support ubuntu bionic source builds.
2018-04-18 18:38:05 +01:00
chriseth
64043ef970 Support ubuntu bionic source builds. 2018-04-18 17:15:26 +02:00
chriseth
29a97f1641 Fix name clashes between constructor and fallback function. 2018-04-18 14:24:35 +02:00
Leonardo Alt
ae3350ae03 [SMTChecker] Integration with CVC4 2018-04-17 12:26:58 +01:00
chriseth
3c24d64be5 Set version to 0.4.23 2018-04-17 07:55:35 +02:00
chriseth
c65159c78b Preparation for 0.4.22 release. 2018-04-16 20:20:58 +02:00
chriseth
936832b3f9 Preparation for 0.4.22 release. 2018-04-16 19:51:49 +02:00
chriseth
3d04d83297
Merge pull request #3868 from ethereum/bytescleanup
Properly force-clean for shortening bytesXX conversions.
2018-04-16 15:23:36 +02:00
chriseth
533d08517f
Merge pull request #3793 from ethereum/rationalNumberLimit
Rational number limit
2018-04-16 13:10:50 +02:00
chriseth
4c1d39b7a2 Properly force-clean for shortening bytesXX conversions. 2018-04-16 12:47:38 +02:00
Erik Kundt
33fbf88707 Limits rational numbers to 4096 bits. 2018-04-16 11:45:55 +02:00
chriseth
d8030c9b2a
Merge pull request #3880 from ethereum/addressMemberDocAndWarn
Improve documentation and warning about accessing contract members in…
2018-04-16 11:05:05 +02:00
chriseth
559fa58ddf Document ABI encoding functions. 2018-04-13 18:36:33 +02:00
Daniel Kirchner
05c5ab19fb Improve documentation and warning about accessing contract members inherited from address. 2018-04-13 18:26:24 +02:00
Daniel Kirchner
4bd31aaeca Add ChangeLog entry. 2018-04-12 21:15:14 +02:00
chriseth
7054defdd6
Merge pull request #3364 from ethereum/revertWithReason
Revert with reason
2018-04-12 21:01:08 +02:00
Daniel Kirchner
6862f22943 Fix internal compiler error when parsing `var` declaration without identifier. 2018-04-12 14:57:14 +02:00
chriseth
43b1dd758b Changelog entry. 2018-04-12 13:09:38 +02:00
chriseth
3da16b3e8a Documentation for revert with reason string. 2018-04-12 13:09:37 +02:00
chriseth
c3dc67d0e0
Merge pull request #3848 from ethereum/constantDivisionByZero
Error on invalid arithmetic with constant expressions.
2018-04-12 11:49:08 +02:00
chriseth
2ad1acaf72 Warn if modifiers are applied to functions without implementation. 2018-04-11 22:00:21 +02:00
chriseth
d64e933327 Changelog entry. 2018-04-11 22:00:20 +02:00
chriseth
ae3fca6db2
Merge pull request #3863 from ethereum/fixGasEstimation
Correctly ignore costs of fallback for other functions.
2018-04-11 21:53:41 +02:00
Daniel Kirchner
8d355df14c
Merge pull request #3830 from ethereum/fix-include-paths-errors
Fix include paths errors
2018-04-11 21:25:30 +02:00
Daniel Kirchner
daa69df447 Error on invalid arithmetic with constant expressions. 2018-04-11 21:17:10 +02:00
chriseth
928ce08845 Correctly ignore costs of fallback for other functions. 2018-04-11 19:42:34 +01:00
Daniel Kirchner
c15cb6cc7a Prevent information about file existence outside the allowed paths to leak by mimicing boost::filesystem::weakly_canonical. 2018-04-11 18:52:22 +02:00
Daniel Kirchner
cb548f6f53 Fix ConstantEvaluator to correctly handle single element tuples. 2018-04-11 18:30:34 +02:00
chriseth
d50d1f0ac1
Merge pull request #3580 from ethereum/asm-bitshift-optim
Add simplification rule for bitwise shifting
2018-04-11 17:18:31 +02:00
chriseth
c9bdbcf470
Merge pull request #3309 from ethereum/limit-errors
Limit the number of errors output in a single run to 256
2018-04-11 16:13:41 +02:00
Jason Cobb
3b7b962b66 Fix bug in typechecking when comparing rational literals 2018-04-11 12:03:08 +02:00
Daniel Kirchner
f03695731b Add source locations to syntax test expectations. 2018-04-10 14:08:22 +02:00
Daniel Kirchner
3eedbc6a9c Error when using no parentheses in modifier-style constructor calls. 2018-04-10 12:09:34 +02:00
Alex Beregszaszi
cb352edd26 Add constant optimiser for SHR/SHL instructions 2018-04-09 20:07:44 +01:00
Daniel Kirchner
b8fdb666e2 Allow duplicated constructor calls, if no arguments; support for multiple inheritance; backwards compatibility.
# tmp
2018-04-09 15:26:05 +02:00
Federico Bond
4e037281ac Error on duplicated super constructor calls 2018-04-09 11:22:35 +02:00
Daniel Kirchner
b2753aa053 Static Analyzer: Fix non-deterministic order of unused variable warnings. 2018-04-06 18:10:26 +02:00
Alex Beregszaszi
d5f40c141b Limit the number of errors output in a single run to 256 2018-04-06 13:52:19 +02:00
Daniel Kirchner
037eba20fc
Merge pull request #3824 from ethereum/baseArgumentsEmptyParenthesis
Error when using empty parentheses for base class constructors that r…
2018-04-05 14:43:28 +02:00
Alex Beregszaszi
36d6c27e68
Merge pull request #3745 from ethereum/fixRecursion
Fix invalid recursion errors for structs
2018-04-05 12:04:54 +02:00
chriseth
c6da5c1650
Merge pull request #3822 from ethereum/swap-comparison
Replace comparison operators with opposites if preceded by SWAP1
2018-04-05 11:57:26 +02:00
Daniel Kirchner
96eff0ff6a Error when using empty parenthesis for base class constructors that require arguments. 2018-04-05 11:52:22 +02:00
Alex Beregszaszi
02ea0e547f Replace comparison operators with opposites if preceded by SWAP1 2018-04-04 17:47:58 +02:00
chriseth
65f18a18de More specific push implementation. 2018-04-04 16:50:45 +02:00
Alex Beregszaszi
920de496ab
Merge pull request #3798 from ethereum/commutative-swap
Remove useless SWAP1 in front of commutative operations
2018-04-04 08:15:24 +02:00
Alex Beregszaszi
17bcabb6cf Remove useless SWAP1 in front of commutative operations 2018-04-03 18:57:07 +02:00
Daniel Kirchner
d664a599e6 Constructors are defined using the `constructor` keyword. 2018-04-03 18:21:55 +02:00
Alex Beregszaszi
0edce4b570
Merge pull request #3693 from ethereum/optimizeMLOAD
Optimize across MLOAD if MSIZE is not used.
2018-04-03 15:58:11 +01:00
chriseth
5bdadff0d8 Fix detection of recursive structs. 2018-04-03 16:27:28 +02:00
chriseth
a54fdc495f Fix: Treat empty base constructor argument list as not provided. 2018-04-03 14:53:48 +02:00
chriseth
deadff263f Changelog entry. 2018-04-03 14:34:44 +02:00
chriseth
326d656a55
Merge pull request #3790 from ethereum/empty-structs
Disallow empty structs
2018-03-30 13:58:35 +02:00
chriseth
5c8a6aac69 Prevent encoding of weird types and support packed encoding of external function types. 2018-03-29 09:57:11 +01:00
Anthony Broad-Crawford
8a18f22b87 Support for error on non-existant or irregular files with command line option to ignore 2018-03-28 10:25:43 +01:00
chriseth
3bb54e8bd5
Merge pull request #3775 from federicobond/improve-error-fractional-shift
Improve error message when attempting to shift by fractional number
2018-03-28 11:16:44 +02:00
Alex Beregszaszi
ebb12756ad Still allow empty structs for non-0.5.0 mode 2018-03-27 15:49:41 +01:00
Alex Beregszaszi
b540ba527a Disallow empty structs 2018-03-27 15:49:41 +01:00
chriseth
62559cf127
Merge pull request #3681 from ethereum/interface-external
Allow overriding external functions in interfaces with public in a child
2018-03-27 15:47:59 +02:00