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
|
16e966dea0
|
Add control flow analyzer and test for uninitialized storage returns.
|
2018-05-14 20:23:40 +02:00 |
|
Daniel Kirchner
|
995623f0fa
|
Add control flow graph.
|
2018-05-14 20:23:40 +02:00 |
|
mingchuan
|
dbd0a7ed60
|
Fix link error when using boost shared library
|
2018-05-11 11:20:19 +08:00 |
|
Alex Beregszaszi
|
e96bbe70d4
|
Assert that mandatory fields in the AST are present in AsmAnalysis
|
2018-05-10 10:48:48 +02:00 |
|
Alex Beregszaszi
|
c03a29dea8
|
Fix revert with reason coming from a string variable
|
2018-05-09 17:53:17 +02:00 |
|
Alex Beregszaszi
|
868d449c38
|
Merge pull request #4047 from ethereum/refactorToMulti
Refactor to allow implementing multi variable declarations.
|
2018-05-09 15:37:19 +01:00 |
|
chriseth
|
fe8f38a7a4
|
Assert integrity of empty IndexAccessPath structure.
|
2018-05-09 14:55:36 +02:00 |
|
Daniel Kirchner
|
02380113d4
|
Use the entire token as source location for parser errors.
|
2018-05-09 14:08:22 +02:00 |
|
chriseth
|
be54f48197
|
Further refactor.
|
2018-05-09 11:48:21 +02:00 |
|
chriseth
|
86b7adc18f
|
Refactor expression parser.
|
2018-05-09 11:48:21 +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
|
fe12f05c08
|
Deprecate wildcard assignments.
|
2018-05-08 15:13:32 +01:00 |
|
njwest
|
51b4dc3752
|
fixed grammar in error in CompilerUtils.cpp line 399, 'less variables.' should be 'fewer variables.'
|
2018-05-06 18:52:12 -04:00 |
|
chriseth
|
150d226603
|
Merge pull request #4063 from ethereum/emit-non-event
Show proper error when trying to emit a non-event
|
2018-05-04 15:02:04 +02:00 |
|
Alex Beregszaszi
|
cc10839073
|
Have more uniform parser errors
|
2018-05-04 13:27:05 +01:00 |
|
Alex Beregszaszi
|
c7ee649d80
|
More user friendly output in case of Identifier and Token keywords
|
2018-05-04 13:27:05 +01:00 |
|
Alex Beregszaszi
|
882248ce75
|
Remove code duplication in expectToken
|
2018-05-04 13:27:05 +01:00 |
|
Alex Beregszaszi
|
252bde8542
|
Introduce Token::friendlyName() helper
|
2018-05-04 13:11:23 +01: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 |
|
chriseth
|
81d61ca086
|
Merge pull request #4059 from ethereum/parser-simplify
Simplify the parser expectations
|
2018-05-04 12:50:12 +02:00 |
|
Alex Beregszaszi
|
ffe7f224a6
|
Show proper error when trying to emit a non-event
|
2018-05-04 12:47:01 +02:00 |
|
daniel
|
aa1542a9e1
|
Change bytes to unsigned in FixedBytesType
|
2018-05-03 23:11:34 +01:00 |
|
Alex Beregszaszi
|
ed9f80690b
|
Simplify expectIdentifierToken by using expectToken
|
2018-05-03 22:10:51 +01:00 |
|
Alex Beregszaszi
|
73c99d15cd
|
Remove useless helper expectAssignmentOperator in parser
|
2018-05-03 21:35:38 +01:00 |
|
Alex Beregszaszi
|
b34428249a
|
Change numBits to unsigned IntegerType
|
2018-05-02 23:22:25 -07:00 |
|
Alex Beregszaszi
|
2c00ebbee1
|
Change totalBits and fractionalDigits to unsigned in FixedPointType
|
2018-05-02 23:22:25 -07:00 |
|
chriseth
|
a856135bbf
|
Merge pull request #3797 from ethereum/shift-constantinople
Use native shift instructions on Constantinople
|
2018-05-02 16:50:15 +02:00 |
|
chriseth
|
8debded743
|
Revert "BREAKING: Bool variables should not allow arithmetic comparison"
|
2018-05-02 15:56:59 +02:00 |
|
chriseth
|
42289b642f
|
Merge pull request #4003 from ethereum/bool_vars_comparison
BREAKING: Bool variables should not allow arithmetic comparison
|
2018-05-02 15:56:06 +02:00 |
|
Alexander Arlt
|
f94b793472
|
Add virtual destructors on base classes.
|
2018-05-02 13:29:16 +02:00 |
|
Alex Beregszaszi
|
059e232e69
|
Support shifts in gas estimator
|
2018-04-30 21:22:59 +01:00 |
|
chriseth
|
2968639406
|
Removed signed shift right from the utilities.
|
2018-04-30 20:34:43 +01:00 |
|
Alex Beregszaszi
|
52c9441879
|
Do not use SAR instead of SDIV in shifts because it rounds differently
|
2018-04-30 20:34:43 +01:00 |
|
Alex Beregszaszi
|
c3608eaf90
|
Use native shift instructions in ABIFunctions on Constantinople
|
2018-04-30 20:34:43 +01:00 |
|
Alex Beregszaszi
|
22bfd3da41
|
Use native shift instructions on Constantinople
|
2018-04-30 20:34:43 +01:00 |
|
chriseth
|
d26b6b64c0
|
Merge pull request #3996 from ethereum/refactorParser
Refactor parser.
|
2018-04-30 19:15:11 +02:00 |
|
chriseth
|
15024154ab
|
Merge pull request #4018 from ethereum/disable-bytes0
Disable FixedBytesType(0) aka bytes0
|
2018-04-30 18:19:07 +02:00 |
|
chriseth
|
9e61b25dc4
|
Merge pull request #3958 from meowingtwurtle/fixedPointTypes
Types class changes for fixed points
|
2018-04-30 15:56:55 +02:00 |
|
Alex Beregszaszi
|
548bf2ff28
|
Remove unused function smallestTypeForLiteral
|
2018-04-30 14:35:26 +01:00 |
|
Alex Beregszaszi
|
e0b178e1c5
|
Disable FixedBytesType(0) aka bytes0
|
2018-04-30 12:23:30 +01:00 |
|
Leonardo Alt
|
ab251c7e7d
|
Bool variables should not allow arithmetic comparison
|
2018-04-27 11:35:58 +02:00 |
|
chriseth
|
d44fb03322
|
Refactor parser.
|
2018-04-26 10:59:02 +02:00 |
|
Alexander Arlt
|
3ec667f59b
|
Add virtual destructor in LValue class.
|
2018-04-24 23:39:25 +02:00 |
|
chriseth
|
d1e1293fbd
|
Merge pull request #3981 from ethereum/years-suffix
The "year" denomination is deprecated
|
2018-04-24 12:12:03 +02:00 |
|
Alex Beregszaszi
|
258ae8927e
|
Merge pull request #3970 from elopio/test/docstring-tag-end
docstring: add missing space
|
2018-04-24 02:16:27 +01:00 |
|
Leo Arias
|
b74566e4ea
|
docstring: add missing space
|
2018-04-23 21:47:53 +00: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
|
896018c8a3
|
Treats inline array as an error.
|
2018-04-23 17:11:41 +02: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 |
|
Erik Kundt
|
f2b58de92c
|
Prevents null type from being used in tuple.
|
2018-04-22 16:54:33 +02:00 |
|
Alex Beregszaszi
|
5423974e87
|
Remove category check in FixedPointType:binaryOperatorResult as commonType handles the same
|
2018-04-20 17:54:34 +01:00 |
|
Jason Cobb
|
57003c534a
|
Types changes for fixed points
|
2018-04-20 17:53:42 +01:00 |
|
Alex Beregszaszi
|
0493e3b053
|
Turn deprecated warnings for sha3/suicide into errors (experimental 0.5.0)
|
2018-04-20 17:40:48 +01:00 |
|
Alex Beregszaszi
|
069ea38916
|
Make literals an error for tight packing (experimental 0.5.0)
|
2018-04-20 11:58:16 +01:00 |
|
chriseth
|
676732776e
|
Merge pull request #3943 from ethereum/smt_remove_branch_warning
[SMTChecker] Remove 'information is erase' message for if-else
|
2018-04-20 09:01:59 +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 |
|
Leonardo Alt
|
ba3d16fc58
|
[SMTChecker] Remove 'information is erase' message for if-else
|
2018-04-19 09:28:44 +02:00 |
|
chriseth
|
a94945dfe4
|
Improve error message for failed member lookup.
|
2018-04-18 22:56:45 +01:00 |
|
Alex Beregszaszi
|
39b7b44a8d
|
Merge pull request #3923 from ethereum/warnConstructor
Warn about functions named "constructor".
|
2018-04-18 22:22:58 +01:00 |
|
Alex Beregszaszi
|
377254d5a8
|
Merge pull request #3922 from ethereum/smt_sol_unimplementedassert
[SMTChecker] Using solUnimplementedAssert instead of solAssert
|
2018-04-18 20:28:47 +01:00 |
|
chriseth
|
4895864302
|
Warn about functions named "constructor".
|
2018-04-18 21:23:09 +02:00 |
|
chriseth
|
29a97f1641
|
Fix name clashes between constructor and fallback function.
|
2018-04-18 14:24:35 +02:00 |
|
Leonardo Alt
|
78ba34608f
|
[SMTChecker] Using solUnimplementedAssert instead of solAssert when applicable
|
2018-04-18 13:17:59 +02:00 |
|
Leonardo Alt
|
ae3350ae03
|
[SMTChecker] Integration with CVC4
|
2018-04-17 12:26:58 +01: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 |
|
Alex Beregszaszi
|
0201492bbf
|
Remove redundant cleanup for abi.encode.
|
2018-04-16 12:47:38 +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
|
95c49b367e
|
Merge pull request #3875 from ethereum/constructorSelfRef
Stricter check for "this" in constructor.
|
2018-04-13 18:39:31 +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
|
be37e3a912
|
Stricter check for member access to "this" in constructor.
|
2018-04-13 15:57:13 +02:00 |
|
Erik Kundt
|
8935c0dd2f
|
Uses short string representation of TypePointer
|
2018-04-12 21:14:50 +02:00 |
|
chriseth
|
7054defdd6
|
Merge pull request #3364 from ethereum/revertWithReason
Revert with reason
|
2018-04-12 21:01:08 +02:00 |
|
chriseth
|
44416d1ac6
|
Merge pull request #2980 from ethereum/abi-api
Add abi.encode and abi.encodePacked
|
2018-04-12 20:55:03 +02:00 |
|
chriseth
|
75b8828666
|
Allow struct encoding with new encoder.
|
2018-04-12 16:37:16 +02:00 |
|
Daniel Kirchner
|
6862f22943
|
Fix internal compiler error when parsing `var ` declaration without identifier.
|
2018-04-12 14:57:14 +02:00 |
|
chriseth
|
4faa839813
|
Use error signature for revert data.
|
2018-04-12 13:09:38 +02:00 |
|
chriseth
|
fcb7a27216
|
Only forward returndata if EVM version supports it.
|
2018-04-12 13:09:38 +02:00 |
|
chriseth
|
7a9ee69e98
|
Bubble up error messages.
|
2018-04-12 13:09:38 +02:00 |
|
chriseth
|
ae1d040285
|
Allow error string for `require `.
|
2018-04-12 13:09:37 +02:00 |
|
chriseth
|
012ab37fe3
|
Code generator for revert with reason string.
|
2018-04-12 13:09:37 +02:00 |
|
chriseth
|
8ab7dc036a
|
Register overload for `revert() ` that can receive a reason string.
|
2018-04-12 13:09:37 +02:00 |
|
chriseth
|
f00bb43593
|
Allow function overloads involving MagicVariableDeclarations.
|
2018-04-12 13:09:37 +02:00 |
|
chriseth
|
17fc0f54b5
|
Use FunctionTypePointer (adds `const `).
|
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
|
7343c40283
|
Check partial function parameters if rest is arbitrary.
|
2018-04-12 00:10:25 +02:00 |
|
Alex Beregszaszi
|
d56acb68ab
|
Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSignature.
|
2018-04-11 22:32:10 +02:00 |
|
chriseth
|
b5a696ad48
|
Properly cope with constructor headers.
|
2018-04-11 22:00:21 +02:00 |
|
chriseth
|
2ad1acaf72
|
Warn if modifiers are applied to functions without implementation.
|
2018-04-11 22:00:21 +02:00 |
|
chriseth
|
6d289783b4
|
Fix state variable parsing.
|
2018-04-11 22:00:04 +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
|
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
|
cb548f6f53
|
Fix ConstantEvaluator to correctly handle single element tuples.
|
2018-04-11 18:30:34 +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
|
3eedbc6a9c
|
Error when using no parentheses in modifier-style constructor calls.
|
2018-04-10 12:09:34 +02:00 |
|
chriseth
|
b52614116e
|
Merge pull request #3821 from ethereum/warn-constructor-override
Warn constructor override
|
2018-04-10 11:39:31 +02:00 |
|
hydai
|
aaa8edc36d
|
Fixed typos
|
2018-04-10 13:41:35 +08:00 |
|
Daniel Kirchner
|
549ba801fb
|
Use the most derived contract as main location in case of diamond inheritance.
|
2018-04-09 16:23:18 +02:00 |
|
Daniel Kirchner
|
b918a105a4
|
Move constructor argument override check to TypeChecker and reuse annotations in ContractCompiler.
|
2018-04-09 15:26:08 +02: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
|
43d2954de8
|
Do not abort excessive warnings, just ignore them.
|
2018-04-06 14:44:03 +02:00 |
|
Alex Beregszaszi
|
0812d1189a
|
Ignore warnings when limited errors to 256
|
2018-04-06 13:52:19 +02:00 |
|
Alex Beregszaszi
|
3730f68d4b
|
reindent
|
2018-04-06 13:52:19 +02:00 |
|
Alex Beregszaszi
|
e8be0e61b3
|
Catch FatalError in CompilerStack::analysis to cover all the analysis tests
|
2018-04-06 13:52:19 +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 |
|
chriseth
|
543e1e19c7
|
Merge pull request #3831 from ethereum/memory-suffix
Allow ``memory`` suffix for internal elementary type parsing.
|
2018-04-05 17:02:43 +02:00 |
|
chriseth
|
4c50ed39d7
|
Merge pull request #3829 from ethereum/smt_remove_uf
[SMTChecker] Remove usage of UFs to access SSA vars
|
2018-04-05 16:07:07 +02:00 |
|
chriseth
|
5b1c0506fa
|
Allow `memory ` suffix for internal elementary type parsing.
|
2018-04-05 16:06:04 +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 |
|
Leonardo Alt
|
8d087d1889
|
[SMTChecker] Removing usage of UFs to access SSA indices
|
2018-04-05 12:48:58 +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 |
|
Daniel Kirchner
|
96eff0ff6a
|
Error when using empty parenthesis for base class constructors that require arguments.
|
2018-04-05 11:52:22 +02:00 |
|
chriseth
|
65f18a18de
|
More specific push implementation.
|
2018-04-04 16:50:45 +02:00 |
|
chriseth
|
0cbe55005d
|
Create empty dynamic memory arrays more efficiently.
|
2018-04-04 12:37:04 +02:00 |
|
Daniel Kirchner
|
8f66390f56
|
Set isConstructor to false unconditionally and update to true later for constructors.
|
2018-04-03 18:21:55 +02:00 |
|
Daniel Kirchner
|
e2dac9ed39
|
Set header.isConstructor for old style constructors in parseFunctionHeader as well.
|
2018-04-03 18:21:55 +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
|
eb5b18e814
|
Generalize cycle detection.
|
2018-04-03 16:29:18 +02:00 |
|
chriseth
|
5bdadff0d8
|
Fix detection of recursive structs.
|
2018-04-03 16:27:28 +02:00 |
|
Alex Beregszaszi
|
7753249f64
|
Merge pull request #3699 from ethereum/interfaceExternalVisibility
Defaults to external visibility for interfaces.
|
2018-04-03 15:15:36 +01:00 |
|
chriseth
|
a54fdc495f
|
Fix: Treat empty base constructor argument list as not provided.
|
2018-04-03 14:53:48 +02:00 |
|
chriseth
|
6777f7a57f
|
Optimize across MLOAD if MSIZE is not used.
|
2018-04-03 14:34:32 +02:00 |
|
Erik Kundt
|
f9efa41749
|
Makes visibility warning more concise.
|
2018-04-03 11:16:50 +02:00 |
|
bitshift
|
8fe1cfb12e
|
Defaults to external visibility for interfaces.
|
2018-04-03 11:16:44 +02:00 |
|
Jason Cobb
|
e37b619593
|
Set default fixed point decimal places to 18
|
2018-03-31 00:56:36 +01: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 |
|
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 |
|
chriseth
|
59538e9a04
|
Merge pull request #3686 from ethereum/doNotIncludeItnernal
Do not include internal functions only used by constructor
|
2018-03-27 15:28:08 +02:00 |
|
Alex Beregszaszi
|
fab527c414
|
Add runtimeOnly option to pushCombinedFunctionEntryLabel
|
2018-03-27 04:00:12 +01:00 |
|
chriseth
|
0a67d616db
|
Use shortcut for internal function calls to avoid runtime reference.
|
2018-03-27 04:00:12 +01:00 |
|
bitshift
|
2c56e53046
|
Changes deprecation and adjusts tests.
|
2018-03-27 03:30:03 +01:00 |
|
bitshift
|
ed632025fe
|
Moves blockhash function to global level.
|
2018-03-27 03:30:03 +01:00 |
|
Alex Beregszaszi
|
8bae2dba7c
|
Introduce inContractKind helper on FunctionDefinition
|
2018-03-26 11:37:38 +01:00 |
|
Alex Beregszaszi
|
ef3595b000
|
Allow overriding external functions in interfaces with public in an implementing contract
|
2018-03-26 11:35:17 +01:00 |
|