Leonardo
3db1ce0e14
Merge pull request #5235 from ethereum/smt_refactor_types
...
[SMTChecker] Refactoring types
2018-10-17 18:35:48 +02:00
chriseth
9d00f710bc
Merge pull request #5224 from bshastry/compilerwarn-fix
...
Fix compiler warning
2018-10-17 17:23:22 +02:00
Bhargava Shastry
67fd3ca4a7
Retained move/copy semantics; removed const qualifier from Expression's members name (of type std::string) and arguments (of type std::vector<Expression>)
2018-10-17 16:46:18 +02:00
Bhargava Shastry
546b08c158
Fix compiler warning: clang-8 warns of explicitly-defined op implicitly deleted for Expression object's copy and move constructors
2018-10-17 16:42:51 +02:00
Leonardo Alt
afe83cc28b
Refactor SymbolicAddressVariable and SymbolicVariable allocation
2018-10-17 15:58:13 +02:00
Leonardo Alt
aa23326e06
Consistent renaming of 'counters' and 'sequence' to 'index'
2018-10-17 15:58:13 +02:00
Leonardo Alt
ec39fdcb3c
[SMTChecker] Refactoring types
2018-10-17 15:58:13 +02:00
chriseth
5e01d767d0
Prevent externally used functions from being removed.
2018-10-17 14:12:10 +02:00
chriseth
2384947521
Merge pull request #5209 from ethereum/smt_ssa_refactor
...
[SMTChecker] Refactor SSAVariable such that it only uses Type and not Declaration
2018-10-15 16:49:47 +02:00
Leonardo Alt
e4851cf59e
[SMTChecker] Inline calls to internal functions
2018-10-15 15:11:21 +02:00
Leonardo Alt
4a4620ac95
Refactor SSAVariable such that it only uses Type and not Declaration
2018-10-15 14:20:54 +02:00
chriseth
0778fb2dfc
Merge pull request #5208 from mestorlx/bug4156
...
[WIP] Bad identifier suggestion in certain cases
2018-10-15 13:03:49 +02:00
Christian Parpart
1304361b9c
Renaming namespace dev::julia to dev::yul.
2018-10-15 11:58:51 +02:00
Christian Parpart
9a4bec7e47
Renaming libjulia to libyul
2018-10-15 11:52:35 +02:00
Christian Parpart
6d815a142f
Fixes invalid function calls to literals inside tuple assignment's LHS.
2018-10-15 10:35:11 +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
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
b5399a7aa0
Merge pull request #5132 from ethereum/genericVisitor
...
Generic visitor.
2018-10-10 16:01:20 +02:00
chriseth
06200b4b64
Merge pull request #5180 from ethereum/cpp-cleanup
...
Some C++ cleanup
2018-10-10 11:43:42 +02:00
Alex Beregszaszi
6c3d12d85b
Do not require ctype/stdio if not needed
2018-10-09 19:06:22 +01:00
Alex Beregszaszi
e732c49c2f
Change find to use a single character
2018-10-09 18:06:25 +01:00
Christian Parpart
4d5216c2e0
Fixes large rational number literals being wrongly interpreted.
...
Fixes #5052 .
2018-10-09 14:36:49 +02:00
chriseth
3f216bac5e
Generic visitor.
2018-10-09 14:27:21 +02:00
chriseth
547b26d464
Merge pull request #5124 from lazaridiscom/1802-hex-error-reporting
...
use Token type for hex error, draft re #1802
2018-10-09 14:17:11 +02:00
Lazaridis
4bcd89105c
provide general hex-literal error message, fixes #1802
...
dummy
2018-10-09 06:51:19 +03:00
Alex Beregszaszi
fa0ce6a7e7
Use empty() instead of size() == 0
2018-10-09 04:29:37 +01:00
chriseth
6a0b7759ba
Fix pragma error suggestion.
2018-10-09 03:15:53 +02: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
chriseth
d76bfcd935
Fix typos.
2018-10-04 13:28:16 +02:00
Christian Parpart
9fb835b710
Fixes #5051 (introduced in #4684 ), effectively allowing underscores in address literals.
2018-10-02 15:37:15 +02:00
chriseth
db4f780283
Merge pull request #4962 from anurag-git/anurag_issue_3667-1
...
Removed default case from "ExpressionCompiler::visit(FunctionCall...)".
2018-10-01 13:24:26 +02:00
chriseth
5ae32b24a6
Merge pull request #5113 from ethereum/compilerstack-datagas
...
Use GasEstimator::dataGas in CompilerStack
2018-10-01 13:20:38 +02:00
Anurag Dashputre
3321000f67
Removing extra default cases to force compile time error, instead of runtime.
2018-09-30 12:40:38 +05:30
Alex Beregszaszi
c4b5101b9d
Merge pull request #4676 from jwasinger/extcodehash
...
Add support for EXTCODEHASH
2018-09-28 00:04:40 +01:00
Alex Beregszaszi
d71cc66dde
Use GasEstimator::dataGas in CompilerStack
2018-09-28 00:03:35 +01:00
chriseth
f81c6e6d16
Merge pull request #5099 from ethereum/standard-json-optimiser
...
Be more strict about values in the optimizer block in StandardJSON
2018-09-26 22:31:27 +02:00
Alex Beregszaszi
384a65f660
Be more strict about values in the optimizer block in StandardJSON
2018-09-26 16:51:08 +01:00
Jared Wasinger
c6bd2979b1
Add assembly support for EXTCODEHASH (EIP-1052)
2018-09-26 16:11:02 +01:00
Alex Beregszaszi
d64be90497
Add PathGasMeter.estimateMax helper
2018-09-26 14:25:40 +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
chriseth
46f630c5a6
Merge pull request #5092 from ethereum/create2-evmversion
...
CREATE2 is part of Constantinople now
2018-09-26 14:53:44 +02:00
Alex Beregszaszi
00b1b96eb4
Use better assertion messages for RationalNumberType::literalValue
2018-09-26 13:05:58 +01:00
Erik Kundt
466e8f56e6
Removes unnecessary check of array type.
2018-09-26 12:46:08 +02:00
Alex Beregszaszi
8cfc6c98d6
CREATE2 is part of Constantinople now
...
Also add hasCreate2 to EVMVersion
2018-09-26 01:58:10 +01:00
Nicolás Venturo
f8d43a4da5
Removed extra whitespace.
2018-09-25 14:40:39 -03:00
chriseth
64a6888aba
Merge pull request #5063 from ethereum/standard-json-bug
...
Fix typo in parsing/writing JSON error in StandardCompiler
2018-09-24 15:01:38 +02:00
chriseth
32112d6480
Merge pull request #5041 from liangdzou/fix_typo_in_doc
...
fix typo in docs and comments
2018-09-24 13:52:33 +02:00
Khan M Rashedun-Naby
376ce07915
Use 'switch' instead of 'if..else if'
2018-09-24 08:31:44 +06:00
Erik Kundt
e6d87e54c8
Simplifies zero-length check for fixed-size arrays.
2018-09-22 03:07:12 +02:00
Erik Kundt
d821cbdff5
Moves length check to reference resolver.
2018-09-22 00:25:52 +02:00
Alex Beregszaszi
abfd283af7
Fix typo in parsing/writing JSON error in StandardCompiler
2018-09-21 22:43:57 +01:00
Erik Kundt
ff5be17990
Disallows fixed-size multidim. arrays with zero-length.
2018-09-21 18:44:56 +02:00
Alex Beregszaszi
5dd3ee2d96
Merge pull request #5050 from ethereum/standard-json-crashes
...
Add proper error reporting when invalid settings are provided in StandardJSON
2018-09-21 15:48:05 +01:00
Alex Beregszaszi
8f96fe698d
Merge pull request #5049 from ethereum/structtype-assert-annotation
...
Add assertion for annotated type in Structtype::canBeUsedExternally
2018-09-21 15:02:26 +01:00
Alex Beregszaszi
a515173900
Add proper error reporting when invalid settings are provided in StandardJSON
2018-09-21 14:53:24 +01:00
Alex Beregszaszi
69ff61d149
Add assertion for annotated type in Structtype::canBeUsedExternally
2018-09-21 14:25:05 +01:00
liangdzou
f347dee812
fix typo
2018-09-21 09:27:33 +08:00
chriseth
dc9853bb6e
Merge pull request #5030 from ethereum/payableConversion
...
Make non-payable default for conversion to address.
2018-09-20 21:20:46 +02:00
liangdzou
44e8dfd393
fix typo
2018-09-20 22:54:57 +08:00
chriseth
d0461c49fe
Make non-payable default for conversion to address.
2018-09-20 14:31:04 +02:00
hydai
b409faa675
Disallow uppercase X in hex number literals
2018-09-19 22:01:15 +08:00
liangdzou
24e5dcc352
fix code format problems
2018-09-19 00:18:49 +08:00
liangdzou
808c3f3df5
fix some format typos
2018-09-17 22:13:21 +08:00
liangdzou
f3cbdadec7
Do not set to ref for explicit conversion and add assertion for array
...
type conversion. Also, add some test cases for #4901 and #4948 .
2018-09-14 08:42:40 +02:00
Jordan Last
d0497aacc0
fixing rebase conflicts
...
add ElementaryTypes::BytesMemory and ElementaryTypes::StringMemory
fix rebase conflicts
fixing rebase conflicts
use make_shared instead of new
fix tabs and StateMutability parameter
create address and addressType functions, fix spaces in comment
fix typo and switch nonpayable to payable
fix spaces
fix comment again
2018-09-13 15:53:06 -06:00
Daniel Kirchner
e7daed68c1
Merge pull request #4911 from ethereum/addressPayable
...
Payable and non-payable address type.
2018-09-13 17:30:54 +02:00
Daniel Kirchner
ae35a58124
Add `stateMutability
field to JSON AST for
address
` types.
2018-09-13 15:15:49 +02:00
Daniel Kirchner
12aaca1645
Add payable and non-payable state mutability to AddressType.
2018-09-13 15:15:49 +02:00
Anurag Dashputre
b86cea033b
Removed default case from "ExpressionCompiler::visit(FunctionCall...)".
2018-09-13 15:40:06 +05:30
liangdzou
558a4ac49c
give more information (at most 35 chars before and after) for too long lines
...
add tests for giving more informations for too long lines
add edge tests for giving more informations for too long lines
avoid printing out tailing white space
update test case after avoiding printing out trailing whitespace
update test case for removing the pre-release warning from reference
refactor the code to if-else flavor
rename folder to cmdlineErrorReports under test
rename folder to cmdlineErrorReports under test
ignore whitespace for reference files
avoiding to modify the file stderr_path by call sed without -i option
print ' ...' instead of ' ... ' at the end of a line
2018-09-13 09:55:54 +08:00
Daniel Kirchner
1ce3581a52
Accept `address payable
` during parsing.
2018-09-11 14:52:23 +02:00
Daniel Kirchner
a434896458
Restore `isConstructor
` in the legacy AST.
2018-09-11 14:47:25 +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
120438c0cf
Always perform cleanup for EXP.
2018-09-10 12:47:46 +02:00
chriseth
0b7b8162ca
This fixes several bugs with regards to line breaks and comments:
...
- any unicode line break (line feed, vertical tab, form feed, carriage
return, NEL, LS and PS) is considered to terminate a single-line
comment. The line break itself is considered to be the next token
after the comment, leading to a parser error if it is not an
ascii character (i.e. for NEL, LS and PS).
- unterminated multiline comments are considered illegal tokens
- '/** /' is considered an unterminated multiline comment
(previously, whitespace was allowed before the last '/'
2018-09-06 16:42:59 +02:00
chriseth
977ac9c390
Refactor handling of whitespace.
2018-09-06 16:42:59 +02:00
Daniel Kirchner
f020f96b6c
More consistently use parse*() functions without argument in the parser.
2018-09-06 14:55:07 +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
e6aa15bae1
Merge pull request #4895 from ethereum/abidecodesingle
...
Fix abi.decode returning single value.
2018-09-04 23:47:56 +02: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
chriseth
8da1f25030
Merge pull request #4897 from ethereum/trailingWhitespaceDetection
...
Trailing whitespace detection script and circleci job.
2018-09-04 18:20:57 +02:00
chriseth
624dbbe142
Fix abi.decode returning single value.
2018-09-04 18:19:00 +02:00
Daniel Kirchner
1ae6ec9038
Remove trailing whitespace.
2018-09-04 17:43:04 +02:00
chriseth
9daac90cf7
Merge pull request #4888 from ethereum/disallow_single_statement_vardecl_if_while_for
...
Disallow single statement var decl in if/while/for without blocks
2018-09-04 17:24:06 +02:00
Daniel Kirchner
82f512a7d4
Add return data to bare calls.
2018-09-04 13:31:10 +02:00
Leonardo Alt
ac8892e0e3
Review suggestions
2018-09-04 12:14:04 +02:00
Leonardo Alt
17176871ab
Changed error message and added tests
2018-09-04 11:48:58 +02:00
Daniel Kirchner
a102f3b783
Remove trailing whitespace for all files in the repository.
2018-09-04 11:30:30 +02:00
chriseth
2783905bab
Merge pull request #4837 from chase1745/default-to-unspecified
...
Rename `Location::Default` to `Location::Unspecified`
2018-09-03 18:44:41 +02:00
chriseth
431c2fbcf3
Turn warning into error.
2018-09-03 18:35:57 +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
chriseth
758bc1614c
Merge pull request #4851 from anurag-git/anurag_issue_4824
...
Removed unused "FunctionType::Kind::CallCode"
2018-09-03 16:51:05 +02:00
bakaoh
c458f5988b
Fix#4743: Incorrect source location for nameless parameters
2018-08-28 11:11:40 +07:00
Anurag Dashputre
94c327c1ae
Removed unused "FunctionType::Kind::CallCode" from Types.h and all its usage
2018-08-23 13:09:00 +05:30
Anurag Dashputre
8497dcd721
Merge branch 'develop' into anurag_issue_3667
2018-08-23 11:56:45 +05:30
Anurag Dashputre
55524788e2
Removed the default cases related to assertion to detect the problem at compile-time instead of run-time
2018-08-23 11:47:00 +05:30
Chase McDermott
551e0bf47c
Rename Location::Default to Location::Unspecified.
2018-08-17 18:15:22 -05:00
Anurag Dashputre
435cd95c54
Default case removed to detect errors at comoile time rather than run time
2018-08-17 18:37:35 +05:30
chriseth
410d288dfc
Merge pull request #4629 from ethereum/mapping_dynamic_key
...
Dynamic type as mapping key returns error instead of assertion fail
2018-08-16 15:56:14 +02:00
chriseth
c274af0770
Merge pull request #4825 from ethereum/expressionCompBareCall
...
More safeguards for (library) function types.
2018-08-16 14:38:44 +02:00
Leonardo Alt
583e7156ba
Dynamic type as mapping key returns error instead of assertion fail
2018-08-16 11:59:41 +02:00
liangdzou
74c37935f0
fix a typo: declaratoion => declaration
2018-08-16 13:42:46 +08:00
chriseth
cc6fa6d61f
Merge pull request #4822 from ethereum/addressStaticCall
...
Add ``staticcall`` to ``address``.
2018-08-16 00:13:21 +02:00
chriseth
455345871d
More safeguards for (library) function types.
2018-08-15 17:11:43 +02:00
Leonardo Alt
faed71c6b1
Review suggestions
2018-08-15 17:11:18 +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
9328ea4c3c
Add abi.decode(bytes data, (...))
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
cc54f6c425
Merge pull request #4738 from ethereum/dataloc_merged
...
Enforce data location.
2018-08-14 21:38:07 +02:00
chriseth
8f27fb1f4a
Merge pull request #4542 from aarlt/constructor_natspec
...
Fix: natspec annotations on constructors
2018-08-14 19:13:25 +02:00
Chase McDermott
683bce1869
Refactor data location check.
2018-08-14 18:07:15 +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
Jesse Busman
c059119145
Add implicit convertibility to function pointer with higher state mutability
2018-08-14 17:13:10 +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
341128962f
Allow mappings of arrays as arguments and return values of internal functions.
2018-08-13 16:33:37 +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
0b65b2dff6
Disallow packed encoding of arrays of structs.
2018-08-09 21:16:51 +02:00
chriseth
6954f83a0c
Merge pull request #4790 from ethereum/fixCalldata
...
Fix data location of external reference parameters.
2018-08-09 19:40:15 +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
c9ca083d14
Fix data location of external reference parameters.
2018-08-09 15:04:00 +02:00
Alex Beregszaszi
ed52f422b7
Rename FunctionKind SHA3 to KECCAK256 (as the instruction was renamed in libevmasm)
2018-08-08 22:37:40 +01:00
Alexander Arlt
f76d4d5919
Fix: natspec annotations on constructors
...
- natspec annotations on constructore where ignored.
2018-08-08 21:53:35 +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
c7a0f44159
Do not force GMP to be present as dependency of CVC4, but also allow CLN instead.
2018-08-08 19:02:59 +02:00
Daniel Kirchner
9b4546c487
Add workarounds for building against CVC4 on ArchLinux.
2018-08-08 19:02:59 +02:00
Alex Beregszaszi
551343ae3e
Merge pull request #4665 from mattaereal/cmake-patch-solver
...
cmake option added to make solvers optional
2018-08-08 17:58:01 +01:00
Alex Beregszaszi
9d782cc39c
Merge pull request #4770 from ethereum/throw-codegen
...
Remove code generation for Throw statement
2018-08-08 17:55:27 +01:00
Alex Beregszaszi
bb071f3075
Merge pull request #4769 from ethereum/inlineasm-overloading-resolution
...
Provide nicer error message when referencing overloaded references
2018-08-08 17:55:10 +01:00
Alex Beregszaszi
a9819aa8bc
Remove code generation for Throw statement
...
It is disallowed in the type system.
2018-08-08 17:02:25 +01:00
Matías Aereal Aeón
4b20708c49
cmake flags to make solvers optional. Implementation of #4651
2018-08-08 12:43:57 -03:00
Alex Beregszaszi
9062704054
Merge pull request #4753 from mattaereal/boost-to-string-patch
...
Replace boost:lexical_cast<std::string> for std::to_string.
2018-08-08 16:07:25 +01:00
Alex Beregszaszi
3c791d637d
Provide nicer error message when referencing overloaded references
2018-08-08 15:59:24 +01:00