Alex Beregszaszi
5355e85639
Merge pull request #9782 from ethereum/smt-revert
...
[SMTChecker] Support revert()
2020-09-15 13:26:19 +01:00
chriseth
74efd5ba46
Merge pull request #9703 from a3d4/fix-4558-shadowed-declaration-warning
...
Corrected warning for homonymous, but not shadowing declarations
2020-09-15 13:48:55 +02:00
Alex Beregszaszi
783d66c1a4
[SMTChecker] Support revert()
2020-09-15 11:46:33 +01:00
chriseth
eac175c08b
Merge pull request #9053 from ethereum/generatedSources
...
Export generated sources
2020-09-15 12:08:47 +02:00
chriseth
00c8fc73ad
Re-organize EVM object names.
2020-09-15 11:29:10 +02:00
chriseth
3b4024c2e1
Store optimized code if optimizer is activated.
2020-09-15 11:22:41 +02:00
chriseth
e7e9b03bd8
Store generated sources in standard-json output.
2020-09-15 11:22:16 +02:00
a3d4
4ca7655b74
Correct the warning for homonymous, but not shadowing declarations
2020-09-15 02:39:21 +02:00
Alex Beregszaszi
9aa9962f71
Add ContractDefinition::interfaceId() helper
2020-09-14 20:34:52 +01:00
Alex Beregszaszi
83934254ea
[SMTChecker] Support type(I).interfaceId
2020-09-14 20:34:52 +01:00
a3d4
d8520b0af0
Move collision warnings to StaticAnalyzer
2020-09-14 02:52:00 +02:00
a3d4
e7a6534d4f
Unify collision warnings
2020-09-14 02:17:53 +02:00
Leonardo
31b5102aa0
Merge pull request #9731 from ethereum/smt_import
...
[SMTChecker] Fix CHC encoding
2020-09-12 00:56:04 +02:00
Alex Beregszaszi
961a199cf5
[SMTChecker] Support type(T).min and type(T).max
2020-09-11 21:37:51 +01:00
Leonardo Alt
23ee011c56
[SMTChecker] Fix imports
2020-09-11 13:34:46 +02:00
Leonardo
72f8a753a9
Merge pull request #9586 from ethereum/scoper
...
Assign scopes as a separate step.
2020-09-11 10:45:54 +02:00
chriseth
6101bdf7e2
Name simplifier.
2020-09-10 16:23:29 +02:00
Leonardo Alt
40197df104
[SMTChecker] Support shifts
2020-09-09 19:47:52 +02:00
chriseth
c966971fd3
Merge pull request #9770 from ethereum/smt_dot
...
[SMTChecker] Change warning message
2020-09-09 17:17:04 +02:00
Leonardo Alt
00f6b303b1
[SMTChecker] Change warning message
2020-09-09 16:14:21 +02:00
Kamil Śliwak
5e9dd67a0a
FunctionType::canTakeArguments(): Use the correct index when comparing named parameter types
2020-09-09 14:45:58 +02:00
chriseth
202332405f
Merge pull request #9760 from ethereum/sol2YulStorageArrayIndexAccessFix
...
[Sol->Yul] Fixing storage array index access
2020-09-08 16:33:54 +02:00
Djordje Mijovic
ec6d21cde2
[Sol->Yul] Fixing storage array index access
2020-09-08 16:02:56 +02:00
Kamil Śliwak
41bcb97e36
Don't consider contracts implicitly convertible to the type of super
...
- `super` for all intents and purposes behaves like a type and should be a TypeType rather than ContractType. We have an issue to fix it but it's a breaking change. Until then let's at least not treat other contracts as convertible to the ContractType that `super` represents.
2020-09-08 00:29:44 +02:00
Kamil Śliwak
7681c7dddf
Remove dead code from ContractType::isImplicitlyConvertibleTo()
2020-09-08 00:26:29 +02:00
Alexander Arlt
df8bbeeb22
ViewPureChecker::reportMutability: don't check visibility on constructors.
2020-09-07 11:35:33 -05:00
Harikrishnan Mulackal
acec8f271d
Type Checker: Disallow `virtual
` for modifiers in libraries.
2020-09-07 11:17:38 +02:00
Leonardo Alt
7b3cd019d4
Make recursive structs unsupported
2020-09-03 15:19:33 +02:00
Leonardo Alt
bd0c46abf5
Remove unreachable/redundant error messages
2020-09-03 15:19:03 +02:00
Leonardo Alt
e61b731647
[SMTChecker] Support structs
2020-09-03 15:19:03 +02:00
Harikrishnan Mulackal
e2fd41f097
Implemented UnusedFunctionArgumentPruner
2020-09-03 13:15:38 +02:00
chriseth
1f11965849
Simplify DeclarationRegistrationHelper.
2020-09-02 20:45:33 +02:00
chriseth
2934a1f037
Assign scopes as a separate step.
2020-09-02 20:45:33 +02:00
chriseth
3a48be546d
Merge pull request #9602 from ethereum/structMemToStorageSol2Yul
...
[Sol->Yul] Implementing various copying of structs
2020-09-02 13:50:46 +02:00
chriseth
23514c1749
Merge pull request #9724 from ethereum/superForYul
...
Implement ``super``.
2020-09-02 12:48:39 +02:00
Djordje Mijovic
1fab5b79fb
Refactoring signature for updateStorageValueFunction
2020-09-02 12:28:53 +02:00
Djordje Mijovic
15163b2270
Refactoring readFromStorage util frunctions
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-09-02 12:28:53 +02:00
Djordje Mijovic
23f6369a46
Implementing struct copying from calldata to storage
2020-09-02 12:28:53 +02:00
Djordje Mijovic
762e3f3cee
[Sol->Yul] Implementing struct copying from calldata to storage
2020-09-02 12:28:53 +02:00
Djordje Mijovic
381784dd89
[Sol->Yul] Implementing struct copying from storage to memory
2020-09-02 12:28:53 +02:00
Djordje Mijovic
b89c863e11
[Sol->Yul] Implementing struct copying from memory to storage
2020-09-02 12:28:53 +02:00
chriseth
8f34ac472f
Implement `super
`.
2020-09-02 11:00:42 +02:00
Leonardo
0d83977d5a
Merge pull request #9648 from ethereum/smt_refactor_predicates
...
[SMTChecker] Refactor CHC predicates
2020-09-01 20:38:47 +02:00
Leonardo Alt
49d3804de4
[SMTChecker] Fix rational number short circuit
2020-09-01 17:21:13 +02:00
Leonardo Alt
a3b6019131
Move post input and post output filtering from CHC to Predicate
2020-09-01 16:10:12 +02:00
Leonardo Alt
2e2e96cc93
Move state model filtering from CHC to Predicate
2020-09-01 16:10:12 +02:00
Leonardo Alt
e3a8c94ace
Move formatFunctionCallCounterexample from CHC to Predicate
2020-09-01 16:10:11 +02:00
Leonardo Alt
5bbb20d3cb
Move stateVariablesIncludingInheritedAndPrivate from CHC to SMTEncoder
2020-09-01 16:09:57 +02:00
Leonardo Alt
016b9b83a8
Refactor predicates
2020-09-01 16:09:56 +02:00
Leonardo Alt
238b8a929e
[SMTChecker] Fix ICE on tuples of one element that actually have tuple type
2020-09-01 08:31:57 +02:00
Leonardo Alt
5cafbeebec
[SMTChecker] Fix ICE on tuple assignment
2020-09-01 08:29:01 +02:00
Leonardo Alt
50e0ada77d
[SMTChecker] Fix unary operator on lvalue tuple
2020-09-01 08:25:06 +02:00
chriseth
34543e5eab
Merge pull request #9692 from ethereum/smt_fix_pop
...
[SMTChecker] Fix soundness of array pop
2020-08-31 20:07:58 +02:00
chriseth
0203eea20e
Merge pull request #9649 from a3d4/improve-error-coverage-erorrecovery
...
Complete test coverage for errors related to parser error recovery
2020-08-31 18:33:19 +02:00
Leonardo Alt
8c05db88c0
[SMTChecker] Fix soundness of array pop
2020-08-31 12:11:33 +02:00
chriseth
20efba6b55
Merge pull request #9568 from ethereum/fixImmutables
...
Fix reads checks for complex assignment and increment/decrement for immutable variables.
2020-08-28 16:14:18 +02:00
chriseth
8b564a7be7
Fix reads checks for immutable variables.
2020-08-28 15:24:40 +02:00
chriseth
ec3f3c41dd
Merge pull request #9690 from ethereum/immutable-rhs-vardecl
...
Disallow assigning more than once to immutables during the variable declaration
2020-08-28 14:39:23 +02:00
Leonardo
df79a4f162
Merge pull request #9691 from ethereum/oversized-function-array
...
Changed canonicalName() to toString() because of internal functions
2020-08-28 13:57:47 +02:00
Harikrishnan Mulackal
7ff809dc78
Disallow assigning more than once to immutables during the vardecl
2020-08-28 13:42:54 +02:00
Harikrishnan Mulackal
672f391660
Changed canonicalName() to toString() because of internal functions
2020-08-27 21:09:35 +02:00
Alex Beregszaszi
e872b1b51e
Merge pull request #9689 from ethereum/using-for-interface
...
Disallow ``using for`` directive for interfaces.
2020-08-27 19:09:19 +01:00
chriseth
0798167f3d
Merge pull request #9612 from ethereum/yul-rightarrow
...
Introduce RightArrow (->) token
2020-08-27 16:21:18 +02:00
Harikrishnan Mulackal
c7dc42a794
Disallow `using for
` directive for interfaces.
2020-08-27 15:57:51 +02:00
Harikrishnan Mulackal
7826564226
Fix infinite loop for structs in library function parameter
2020-08-27 14:18:07 +02:00
Harikrishnan Mulackal
1c066b1059
Allow type(Contract).name
for abstract contracts and interfaces
2020-08-27 13:37:08 +02:00
Alex Beregszaszi
662f7d8fac
Rename Arrow to DoubleArrow
2020-08-27 12:28:27 +01:00
chriseth
161ed4c948
Merge pull request #9683 from ethereum/fix-exp-neg-literal
...
Disallow the exponent to be a signed integer literal
2020-08-27 13:26:15 +02:00
Harikrishnan Mulackal
6f22899153
Disallow the exponent to be a signed integer literal
2020-08-27 12:08:45 +02:00
Harikrishnan Mulackal
79b2e41252
Fix inheritdoc tags trying to resolve 'empty' elements
2020-08-26 21:28:00 +02:00
Leonardo
fdc4142b2c
Merge pull request #9661 from ethereum/smtBitwiseOr
...
[SMTChecker] Support bitwise or, xor and not operator
2020-08-26 18:20:15 +02:00
chriseth
dbe0518cd2
Merge pull request #9652 from ethereum/iceInlineAssemblyOffset
...
[Sol->Yul] Enabling storage pointers to local vars in inline assembly.
2020-08-26 17:12:54 +02:00
Djordje Mijovic
11a7763f49
[SMTChecker] Support bitwise or, xor and not.
2020-08-26 11:06:56 +02:00
Djordje Mijovic
d99b81ef02
[Sol->Yul] Enabling storage pointers to local vars in inline assembly.
2020-08-26 10:25:42 +02:00
chriseth
21489d8193
Merge pull request #9638 from ethereum/fixNullValuesAST
...
Remove null values from AST also in standard-json mode.
2020-08-24 15:57:33 +02:00
Đorđe Mijović
4dd25f7302
Merge pull request #9639 from ethereum/smtConditionalSupport
...
[SMTChecker] Supporting conditional operator
2020-08-21 14:25:47 +02:00
Djordje Mijovic
3f97a1012a
[SMTChecker] Supporting conditional operator
2020-08-20 21:39:35 +02:00
a3d4
0ee4a85a84
Complete test coverage for errors related to parser error recovery
2020-08-20 16:14:39 +02:00
chriseth
4a720a6511
Merge pull request #9646 from a3d4/improve-error-coverage-syntaxchecker
...
Improve error coverage of syntax checker
2020-08-20 13:18:35 +02:00
chriseth
4dc63875f9
Merge pull request #9113 from ethereum/smt_chc_overflow
...
[SMTChecker] Add underflow/overflow target to CHC
2020-08-20 13:17:00 +02:00
a3d4
ad311fae19
Improve error coverage of syntax checker
2020-08-20 03:23:21 +02:00
chriseth
7b8cc0c49b
Remove null values from AST also in standard-json mode.
2020-08-19 11:06:14 +02:00
chriseth
17edf4f207
Merge pull request #9479 from ethereum/exp
...
Implement checked exponentiation.
2020-08-18 13:57:25 +02:00
chriseth
c34e349572
Implement checked exponentiation.
2020-08-18 12:42:53 +02:00
chriseth
2ff954ec2d
Use kind in json AST for free function.
2020-08-18 11:46:59 +02:00
chriseth
8d92fd1c04
Use opportunistic visiting order for modifiers.
2020-08-18 11:46:59 +02:00
chriseth
e9f91edc4b
Update existing tests.
2020-08-18 11:46:59 +02:00
chriseth
9324fb4f20
Free functions.
2020-08-18 11:46:59 +02:00
chriseth
833f973f0e
Fix assertion for receive function in libraries.
2020-08-17 16:49:13 +02:00
Leonardo Alt
8a06041bbe
[SMTChecker] Add underflow/overflow target to CHC
2020-08-14 12:58:27 +02:00
Jason Cobb
888d7037cd
Make FunctionCallAnnotation::kind a SetOnce
2020-08-12 11:57:01 -04:00
Djordje Mijovic
d685bee2ec
[Sol->Yul] Implementing struct copying from calldata to memory.
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-08-11 16:18:06 +02:00
Leonardo Alt
ec31d971e6
[SMTChecker] Fix tuple name for arrays
2020-08-07 12:28:10 +02:00
Daniel Kirchner
143b37af56
Only conditionally run old code generation in CompilerStack, StandardCompiler and semantic tests.
2020-08-06 15:05:17 +02:00
chriseth
3a409c39e4
Merge pull request #9518 from ethereum/smt_fix_bmc_function_inlining
...
[SMTChecker] Fix ICE in BMC function inlining
2020-08-06 00:50:04 +02:00
chriseth
98faf82d3f
Merge pull request #9563 from ethereum/constrInLib
...
Fix member lookup for constructor in library.
2020-08-05 19:07:28 +02:00
Leonardo Alt
8df8c6e14f
[SMTChecker] Fix ICE in BMC function inlining
2020-08-05 11:47:25 +02:00
chriseth
0ea5aae9aa
Require inheritdoc tag to be non-empty.
2020-08-04 12:13:23 +02:00
chriseth
c96e997a3c
Fix member lookup for constructor in library.
2020-08-04 10:51:40 +02:00
chriseth
d31f05fcc0
Merge pull request #9528 from a3d4/improve-error-coverage-return-tag
...
Use assert to check if return tag applies to a public state-variable
2020-08-03 17:35:50 +02:00
a3d4
0b45168bcb
Use assert to check if return tag applies to a public state-variable
2020-08-03 05:22:09 +02:00
chriseth
cd2ce28317
Merge pull request #9547 from ethereum/useCBOR
...
Use cbor metadata in gas cost tests.
2020-07-28 23:59:14 +02:00
chriseth
b8b78a6982
Use cbor metadata in gas cost tests.
2020-07-28 23:42:22 +02:00
chriseth
aea75d0f5b
Merge pull request #9513 from ethereum/smt_fix_fixed_bytes_access
...
[SMTChecker] Fix ICE on fixed bytes access
2020-07-28 23:24:04 +02:00
chriseth
73506e2858
Merge pull request #9530 from a3d4/improve-error-coverage-referenceresolver
...
Complete error coverage of ReferenceResolver
2020-07-28 21:12:54 +02:00
a3d4
ffdb0e37ff
Complete error coverage of ReferenceResolver
2020-07-28 18:56:57 +02:00
Leonardo Alt
ad1798b000
[SMTChecker] Fix ICE on fixed bytes access
2020-07-28 17:59:42 +02:00
a3d4
5394435bea
Use assert to check zero size base type
2020-07-28 17:39:52 +02:00
chriseth
53d497fc31
Merge pull request #9412 from ethereum/unicode-string
...
[BREAKING] Support unicode string literal type
2020-07-28 11:42:23 +02:00
chriseth
ee9a03ffe1
Merge pull request #9501 from ethereum/calldataToMemoryCopy
...
[Sol->Yul] Implementing bytes copying from calldata to memory.
2020-07-27 19:23:30 +02:00
chriseth
81cdc39f51
Merge pull request #9514 from ethereum/fixInterCon
...
Fix internal error for invalid data location in constructor.
2020-07-27 19:21:55 +02:00
Alex Beregszaszi
6eb60bc8cd
Add check that regular and unicode string literals are well formatted
2020-07-27 18:21:17 +01:00
Alex Beregszaszi
6fe8e63eee
Remove inconsistently used isValidUTF8 helper
2020-07-27 18:21:17 +01:00
chriseth
9605b85c21
Merge pull request #9352 from ethereum/smt_cex
...
[SMTChecker] CHC counterexamples
2020-07-27 19:21:04 +02:00
Leonardo Alt
b207222af7
Fix extra parens
2020-07-27 17:14:59 +02:00
Djordje Mijovic
96258c7e75
[Sol->Yul] Implementing bytes copying from calldata to memory.
2020-07-27 15:14:26 +02:00
chriseth
f24097c38d
Fix internal error for invalid data location in constructor.
2020-07-27 15:00:17 +02:00
Leonardo Alt
de4ae301c4
[SMTChecker] Fix ICE when tuples have extra effectless parens
2020-07-27 13:03:27 +02:00
chriseth
5812cd8213
Merge pull request #9511 from ethereum/ast-hex-string
...
[BREAKING] Distinguish between stringLiteral and hexStringLiteral in the JSON AST
2020-07-27 12:34:40 +02:00
Alex Beregszaszi
5ecc84e92e
Distinguish between stringLiteral and hexStringLiteral in the JSON AST
2020-07-27 10:19:24 +01:00
chriseth
2c574af45b
Fix conversion bug for exp operation.
2020-07-27 10:44:42 +02:00
chriseth
42063f2158
Merge pull request #9490 from ethereum/renameSlotToSelector
...
Rename external function slot to selector.
2020-07-27 10:42:47 +02:00
chriseth
7ad27188a0
Merge pull request #9496 from ethereum/removeSignedCode
...
Remove handling of signed shift amounts.
2020-07-23 19:10:16 +02:00
Leonardo Alt
d5f00842d9
cex2dot debug
2020-07-23 18:49:03 +02:00
Leonardo Alt
5bb4e73693
Review 1
2020-07-23 18:49:03 +02:00
Leonardo Alt
51721c3080
Double SAT run for cex
2020-07-23 18:49:03 +02:00
Leonardo Alt
694ec92688
Generate counterexample message based on cex graph
2020-07-23 18:49:03 +02:00
Leonardo Alt
744905525f
Convert z3 cex graph into STL
2020-07-23 18:49:03 +02:00
Leonardo Alt
a7a069c74a
Refactor constructor exit
2020-07-23 18:49:03 +02:00
chriseth
1b810d4a0a
Remove handling of signed shift amounts.
2020-07-23 16:45:16 +02:00
a3d4
5b54cfbed3
Report an error if immutables not assigned
2020-07-23 16:38:54 +02:00
chriseth
336fe94422
Merge pull request #9426 from ethereum/smt_fix_1_tuple
...
[SMTChecker] Fix ICE in 1-tuple chain
2020-07-23 15:38:17 +02:00
Djordje Mijovic
e7d5a7da10
[TypeChecker] Remove function input and return parameter names from mobileType
2020-07-23 14:39:49 +02:00
chriseth
147a80aa24
Rename external function slot to selector.
2020-07-23 14:19:15 +02:00
Leonardo Alt
9d2a0947e9
Fix 1-tuple chain
2020-07-23 13:46:41 +02:00
chriseth
6bb6783d39
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-22 15:26:44 +02:00
Djordje Mijovic
546e9af24d
[Sol->Yul] Supporting .runtimeCode
2020-07-21 17:56:37 +02:00
chriseth
8b7567f963
Fix merge conflicts.
2020-07-21 15:06:57 +02:00
chriseth
e19e4d9db1
Merge pull request #9451 from ethereum/smt_fix_push_push
...
[SMTChecker] Fix push().push()
2020-07-21 11:40:37 +02:00
chriseth
9be5ed1220
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-21 11:35:28 +02:00
a3d4
ecdfef1b30
Replace grave accent with acute accent
2020-07-21 00:18:47 +02:00
chriseth
10f93fbd8a
Merge pull request #9428 from ethereum/removeVar
...
Remove special treatment of ``var``.
2020-07-20 18:43:44 +02:00
Mathias Baumann
ba0a4de50d
NatSpec: Implement `@inheritdoc
`
2020-07-20 18:32:18 +02:00
chriseth
a8c14c2e68
Merge pull request #9416 from ethereum/disallowOverridePure
...
Disallow public state variables overriding pure functions.
2020-07-20 18:19:40 +02:00
chriseth
93c792c696
Remove special treatment of `var
`.
2020-07-20 17:22:04 +02:00
Leonardo Alt
2c93278719
Fix push().push()
2020-07-20 17:17:35 +02:00
chriseth
50a54fa8aa
Implement inline arrays.
2020-07-20 17:06:32 +02:00
chriseth
50dc17350c
Remove leftover of code-generator for `now
`.
2020-07-20 15:37:53 +02:00
chriseth
c8772a54c3
Constants are considered pure.
2020-07-20 15:18:23 +02:00
chriseth
d3647b13e4
Disallow public state variables overriding pure functions.
2020-07-20 15:18:23 +02:00
Mathias L. Baumann
69a596b0ff
Merge pull request #9418 from ethereum/stateMutForOverride
...
Issue state mutability restriction for overriding and not for virtual functions.
2020-07-20 15:01:25 +02:00
Sachin Grover
b7adb2aa42
Add SPDX license identifier if not present already in source file
...
Fixes : #9220
2020-07-17 20:24:12 +05:30
Leonardo Alt
2e1067a05a
Set type properly for event parameters
2020-07-17 11:17:27 +02:00
chriseth
ba21d26f88
Merge pull request #9344 from ethereum/issue-3412
...
Allow overrides to have a more strict mutability than super
2020-07-16 18:50:51 +02:00
Mathias Baumann
dfffecfe2c
Allow overrides to have a more strict mutability than super
2020-07-16 17:55:12 +02:00
Leonardo Alt
672633af0a
[SMTChecker] Fix ICE on compound assignment to array index
2020-07-16 17:44:10 +02:00
chriseth
aa3f51ab47
Issue state mutability restriction for overriding and not for virtual functions.
2020-07-16 17:19:35 +02:00
chriseth
f945163909
Merge pull request #9432 from ethereum/develop
...
Merge develop into breaking.
2020-07-16 17:14:45 +02:00
Mathias Baumann
d3af598c49
CodeGen: Avoid double cleanup when copying to memory
2020-07-16 13:53:48 +02:00
Leonardo Alt
46653b2d43
Fix ICE when bitwise operator on fixed bytes
2020-07-15 19:32:15 +02:00
Alex Beregszaszi
eab12ecf77
Nicer error message for private payable functions
2020-07-14 14:38:12 +01:00
chriseth
349114684d
Fix windows build.
2020-07-14 14:19:37 +02:00
chriseth
f93932c259
Merge pull request #9406 from ethereum/fixSegfault
...
Fix segfault in oversized objects check in combination with var.
2020-07-14 13:30:33 +02:00
Daniel Kirchner
9c62ea182d
Fix segfault in oversized objects check in combination with var.
2020-07-14 11:23:39 +02:00
chriseth
f28bede34a
Refactor storageSizeUpperBound.
2020-07-14 10:45:02 +02:00
Harikrishnan Mulackal
f73b25bb78
Removed specialized errors related to constant state mutability
2020-07-14 12:42:47 +05:30
Daniel Kirchner
c3e13b6733
Promote gwei to a proper keyword.
2020-07-13 18:07:11 +02:00
Daniel Kirchner
38c6ecbbe2
Remove finney and szabo denominations.
2020-07-13 18:07:10 +02:00
chriseth
cf189a3285
Merge pull request #9285 from ethereum/no_dot_in_asm
...
[BREAKING] Change _slot and _offset to use dot in inline assembly
2020-07-13 17:46:39 +02:00
chriseth
12f390a60a
Merge pull request #9326 from ethereum/eventOverwriting
...
[BREAKING] Disallow multiple events with same name and types.
2020-07-13 15:44:35 +02:00
chriseth
fc2e9ec2ff
Use .slot
and .offest
to access storage items.
2020-07-13 14:59:22 +02:00
chriseth
8eee3ed3a2
Merge pull request #9388 from ethereum/develop
...
Merge develop into breaking.
2020-07-13 14:55:21 +02:00
chriseth
b3566ad0d5
Merge pull request #9082 from ethereum/conversionWarnings
...
Adding `-Wsign-conversion` flag and fixing errors
2020-07-13 11:28:09 +02:00
chriseth
ab2f64f442
Disallow multiple events with same name and types.
2020-07-13 11:24:37 +02:00
Leonardo
8d4ec27544
Merge pull request #9376 from ethereum/smt_refactor_targets
...
[SMTChecker] Refactor verification targets
2020-07-10 17:30:48 +02:00
a3d4
efc5ee207d
Fix internal compiler error caused by oversized objects
2020-07-10 11:39:07 +02:00
Leonardo Alt
88030c6568
[SMTChecker] Refactor verification targets
2020-07-10 10:28:49 +02:00
Alex Beregszaszi
a0300835eb
Change CHC to avoid sign mismatch
2020-07-09 17:22:52 +02:00
Djordje Mijovic
547590b972
Fixing additional signedness errors after adding -Wsign-conversion flag
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-09 17:22:45 +02:00
Mathias Baumann
6b37f1c025
Remove visiblity of libraries in inherited contracts.
2020-07-09 16:38:29 +02:00
chriseth
9ef050af9a
Merge pull request #9373 from ethereum/develop
...
Merge develop into breaking.
2020-07-09 16:15:43 +02:00
chriseth
8eb459c825
Disallow dot in inline assembly identifiers.
2020-07-08 19:29:58 +02:00
chriseth
d4ecd33247
Propagate function call argument types across function call options.
2020-07-08 17:59:02 +01:00
chriseth
0c7e4cf16b
Merge pull request #9340 from ethereum/compileTimeSha
...
Evaluate keccak256 of string literals at compile-time.
2020-07-08 18:42:38 +02:00
chriseth
0a0f578d7c
Evaluate keccak256 of string literals at compile-time.
2020-07-08 16:14:14 +02:00
chriseth
89231bea1e
Merge pull request #9324 from ethereum/noDuplicateInternalRoutine
...
Remove duplicate creation of internal routine.
2020-07-08 10:30:37 +02:00
chriseth
64b6524bdb
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-08 09:37:14 +02:00
chriseth
d67862362a
Merge pull request #9338 from ethereum/interface-events
...
Natspec: change events() to interfaceEvents()
2020-07-07 14:25:41 +02:00
Harikrishnan Mulackal
849bae2aa7
Natspec: change events() to interfaceEvents()
2020-07-07 17:22:09 +05:30
chriseth
9ff72ceaa9
Merge pull request #9335 from ethereum/fixOverridingWording
...
Fix wording of non-function override error messages.
2020-07-07 12:21:56 +02:00
chriseth
ec8be81258
Merge pull request #9243 from ethereum/jumpTypesForYul
...
Jump types for yul functions.
2020-07-07 12:21:14 +02:00
chriseth
5959d442cb
Make visibility optional, but it has to be consistent.
2020-07-07 12:16:18 +02:00
chriseth
28de7cbce9
Fix wording of non-function override error messages.
2020-07-07 11:57:38 +02:00
chriseth
747aeb4999
Assert that visibility of constructor is not queried.
2020-07-07 11:49:44 +02:00
chriseth
f6232393ef
Force contracts with constructors with internal parameters abstract.
2020-07-07 11:49:44 +02:00
chriseth
da36400576
Disallow visibility for constructors.
2020-07-07 11:49:44 +02:00
chriseth
8e711a8b99
Remove duplicate creation of internal routine.
2020-07-06 19:25:47 +02:00
chriseth
e48d3e5847
Fix wording of error message.
2020-07-06 19:22:52 +02:00
chriseth
982a269b2b
Merge pull request #9325 from ethereum/develop
...
Merge develop into breaking.
2020-07-06 19:11:02 +02:00
chriseth
a09a791999
Merge pull request #9313 from ethereum/doesnt
...
[Trivial] Replace "doesn't" with "does not" in error message
2020-07-06 18:21:02 +02:00
chriseth
4d2b9cd38f
Jump types for yul functions.
2020-07-06 18:12:54 +02:00
chriseth
f372ba6fea
Constructors cannot have calldata parameters.
2020-07-06 16:52:51 +02:00
chriseth
ab68406006
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-06 15:25:25 +02:00
a3d4
5e4aeaa460
Add variable name to the "Variable covers a large part of storage ...." message
2020-07-06 13:49:09 +02:00
Mathias Baumann
8cdf14f1b3
Replace "doesn't" with "does not" in error message
2020-07-06 13:44:33 +02:00
a3d4
46bcac58eb
Merge pull request #9187 from a3d4/fix-storagesizeestimate
...
Fixed recursive check in structureSizeEstimate
2020-07-03 17:35:11 +02:00
a3d4
1c7a0dcbea
Add warnings for oversized subtypes
2020-07-03 15:18:02 +02:00
Leonardo
8985a93b39
Merge pull request #9041 from ethereum/smt_summary_inputs
...
[SMTChecker] Add current input variables to the function summary
2020-07-02 19:34:41 +02:00
chriseth
3d96e2b11a
Merge pull request #9257 from ethereum/yul-in-memory-struct-creation
...
Yul: Implement memory struct allocation
2020-07-02 17:03:46 +02:00
Mathias Baumann
50373ac1b0
Yul: Implement memory struct allocation
2020-07-02 16:37:20 +02:00
Leonardo Alt
f97fa9b520
[SMTChecker] Add current input variables to the function summary
2020-07-02 15:30:29 +02:00
a3d4
c2e1273ff4
Fixed recursive check in structureSizeEstimate
2020-07-02 04:14:58 +02:00
Leonardo Alt
5517e817d5
Do not trust code of external functions
2020-07-01 18:20:46 +02:00
Leonardo Alt
56e7d43384
Rename var
2020-07-01 18:20:34 +02:00
Leonardo Alt
5160f89c1b
[SMTChecker] Support to external calls to unknown code
2020-07-01 18:20:33 +02:00
chriseth
1ec1166a27
Merge pull request #9277 from a3d4/improve-docstringparser-error-coverage
...
Add a missing DocStringParser error to tests
2020-07-01 18:17:09 +02:00
Bhargava Shastry
1a0391bceb
Fuzzer: Add a specialized StackTooDeepError Exception that is caught in the fuzzing harness
2020-07-01 11:08:20 +02:00
a3d4
acd42a08c1
Add a missing DocStringParser error to tests.
2020-07-01 04:42:37 +02:00
chriseth
d7899a31af
Fix merge conflict resolution.
2020-06-30 18:59:54 +02:00
chriseth
3e3f9a472f
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-30 18:56:51 +02:00
chriseth
76943023bd
Merge pull request #9267 from ethereum/issue-8911-split
...
NatSpec: Implement default inheritance.
2020-06-30 15:16:14 +02:00
Mathias Baumann
c50f0ae00e
NatSpec: Implement default inheritance.
2020-06-30 14:45:13 +02:00
Harikrishnan Mulackal
d41eaeba56
Added containsNestedMapping()
2020-06-30 16:15:03 +05:30
chriseth
49e3217933
Merge pull request #9230 from ethereum/issue-8716
...
Add unit denomination ``gwei``
2020-06-30 12:36:10 +02:00
Mathias Baumann
fe33891531
Natspec: Add warning when using @author
with functions
2020-06-29 18:10:36 +02:00
Harikrishnan Mulackal
4146ff9fcf
NatSpec for events
2020-06-26 15:06:43 +05:30
Mathias Baumann
02328f3bbb
Add unit denomination `gwei
`
2020-06-24 18:24:56 +02:00
chriseth
af0cd4ab98
Merge pull request #9252 from ethereum/develop
...
Merge develop into breaking.
2020-06-23 18:28:24 +02:00
chriseth
1441b97131
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-22 18:40:20 +02:00
chriseth
98e5923e3a
Do now disallow assigning to external parameters.
2020-06-22 18:36:32 +02:00
chriseth
cd2cc76f20
Modules are pure.
2020-06-18 18:28:04 +02:00
chriseth
76468f19fe
Check if using for refers to a library earlier.
2020-06-17 17:45:40 +02:00
chriseth
71cb7551f4
Merge pull request #9208 from ethereum/develop
...
Merge develop into breaking.
2020-06-16 16:11:41 +02:00
chriseth
8086ddd3bd
Merge pull request #9189 from ethereum/simplifyResolver
...
Simplify inline assembly resolver.
2020-06-16 15:31:21 +02:00
chriseth
3a8c996807
Merge pull request #9193 from ethereum/experimentalFeatureBysource
...
Directly determine if experimental feature active.
2020-06-16 14:27:27 +02:00
chriseth
8e23899886
Merge pull request #9188 from ethereum/refactorNameAndType
...
Refactor name and type resolution in preparation for free functions.
2020-06-16 14:26:52 +02:00
chriseth
645c3508a8
Prepare for allowing bound functions and using for everywhere.
2020-06-15 21:20:18 +02:00
chriseth
5fdbb5c3e3
Simplify inline assembly resolver.
2020-06-15 18:10:18 +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
b4c6fdb1ed
Merge pull request #8749 from aarlt/structured-docs-variables-aarlt-breaking
...
[BREAKING] Allow NatSpec comments for state variables.
2020-06-15 14:47:29 +02:00
Leonardo Alt
3c4e286390
[SMTChecker] Replace wrap mod by slack vars
2020-06-12 14:57:21 +02:00
chriseth
194c2b8c9c
Directly determine if experimental feature active.
2020-06-12 12:18:48 +02:00
chriseth
07c1167136
Refactor name and type resolution.
2020-06-12 12:18:02 +02:00
chriseth
012ba9537b
Merge pull request #9184 from ethereum/fixUsingForStorage
...
Fix using for with explicit reference types.
2020-06-11 14:00:28 +02:00
chriseth
5c71b3fbb0
Merge pull request #9173 from ethereum/fixBoundCalldata
...
Fix bound functions with calldata parameters.
2020-06-11 13:31:30 +02:00
chriseth
549c90612c
Fix using for with explicit reference types.
2020-06-11 13:04:41 +02:00
Daniel Kirchner
73cd009b89
Fix struct allocation in Sol->Yul.
2020-06-11 12:16:45 +02:00
chriseth
d4e3491f35
Merge pull request #9177 from ethereum/fixYulStructMemberAccess
...
[Sol -> Yul] Fix struct member access for memory and implement for calldata.
2020-06-11 09:41:04 +02:00
Leonardo
d7f29a33b9
Merge pull request #9096 from ethereum/conversionWarningsLibSol
...
Adding fixes for signedness warnings in libsolidity
2020-06-11 01:06:32 +02:00
Daniel Kirchner
90b66a7362
Fix struct member access for memory and implement for calldata.
2020-06-10 20:01:30 +02:00
chriseth
a1165c135d
Fix error codes.
2020-06-10 18:27:37 +02:00
chriseth
7908e6c373
Fix compiler error.
2020-06-10 18:23:19 +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
chriseth
81c48e67d1
Merge pull request #9073 from a3d4/partfix-5819-add-error-ids-to-json
...
Add error IDs to JSON and console output
2020-06-10 15:56:26 +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
b17915a6ba
Add error IDs to JSON
2020-06-10 13:26:51 +02:00
chriseth
6b3171c38b
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-10 11:30:50 +02:00
Djordje Mijovic
c6e4943089
Adding fixes for signedness warnings in libsolidity
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-06-10 10:41:55 +02:00
chriseth
062159214c
Rename scope to currentContract.
2020-06-09 18:19:09 +02:00
chriseth
e5c19d8a2c
Replace inContractKind by libraryFunction.
2020-06-09 17:56:58 +02:00
chriseth
2724ce9511
Index access to fixed bytes and byte arrays.
2020-06-09 10:50:28 +02:00
Leonardo Alt
f49e2424b2
[SMTChecker] Erase knowledge when array variable is pushed
2020-06-08 10:23:06 +02:00
Leonardo
d243f5baac
Merge pull request #9045 from ethereum/smt_fix_tuple
...
[SMTChecker] Fix internal error in tuples of tuples.
2020-06-05 14:21:32 +02:00
Leonardo
731e6466a0
Merge pull request #9067 from ethereum/smt_fix_fp_again
...
[SMTChecker] Fix BMC targets with FP
2020-06-05 12:39:28 +02:00
Leonardo Alt
87ceb72b82
[SMTChecker] Fix internal error in tuples of tuples.
2020-06-05 12:20:47 +02:00
chriseth
259292c884
Merge pull request #9118 from ethereum/develop
...
Merge develop into breaking.
2020-06-04 10:18:46 +02:00
chriseth
6b5f83cdfa
Merge pull request #9058 from ethereum/memberAccessSolYul
...
[Sol->Yul] Member access for structs.
2020-06-03 21:19:49 +02:00
chriseth
f38e3a3574
Merge pull request #9056 from ethereum/solYulGetters
...
[Sol->Yul] Implement getters.
2020-06-03 19:08:15 +02:00
chriseth
d12db7ec52
Merge pull request #8994 from ethereum/fixInvertedBinaryOp
...
Fix type inversion for shift and exp operators.
2020-06-03 14:11:16 +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
chriseth
e7f3c042b6
Struct member access for storage and memory.
2020-06-03 10:37:39 +02:00
chriseth
37e8d78cff
[Sol->Yul] Implement getters.
2020-06-03 10:33:37 +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
chriseth
0e11d468cc
Merge pull request #9064 from ethereum/FixedPointType-solAssert
...
Added an assert for FixedPointType in InlineAssembly
2020-06-02 16:57:46 +02:00
Leonardo Alt
10162016ae
[SMTChecker] Fix internal error on try/catch
2020-06-02 16:51:53 +02:00
Leonardo
97cb091ada
Merge pull request #9068 from ethereum/smt_fix_state_var_init_call
...
[SMTChecker] Relax assertion about callstack
2020-06-02 15:53:14 +02:00
Mathias Baumann
bdc2c63327
Output error when forward referencing constants in inline assembly
2020-06-02 14:37:54 +02:00
Leonardo Alt
ede39fc2da
[SMTChecker] Relax assertion about callstack
2020-06-02 12:50:51 +02:00
Harikrishnan Mulackal
0bc9f772e7
Added an assert for FixedPointType in InlineAssembly
2020-06-02 13:31:10 +05:30
Leonardo Alt
2128ff9f13
Fix ICE on push for member access
2020-05-29 19:13:27 +02:00
Leonardo Alt
e5d25692a5
[SMTChecker] Fix BMC targets with FP
2020-05-29 18:13:13 +02:00
chriseth
0b216f5771
Merge pull request #9050 from ethereum/smt_fix_nonvalue_asgn
...
[SMTChecker] Fix ICE on index access assignment inside single branches
2020-05-28 16:25:46 +02:00
chriseth
65d8b6cf75
Merge pull request #9033 from a3d4/partfix-5819-add-errorid-to-error-class
...
Add unique ID to Error class
2020-05-28 16:24:47 +02:00
Leonardo Alt
b90fb1cab6
[SMTChecker] Fix ICE on index access assignment inside single branches
2020-05-28 15:56:46 +02:00
a3d4
c959341720
Add errorId to Error class
2020-05-28 15:00:33 +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
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
chriseth
0aa3fb5026
Merge pull request #9014 from ethereum/sol-yul-abidecode
...
[Sol - Yul] Add support for ABIDecode.
2020-05-27 11:44:13 +02:00
chriseth
f066050ec0
Merge pull request #9024 from ethereum/namableTypes
...
Disallow non-namable types for inline arrays.
2020-05-27 09:21:07 +02:00
Kamil Śliwak
f574d8ec3a
Don't assume that an expression cannot be associated with a function declaration
2020-05-27 00:05:18 +02:00
Alexander Arlt
118cb13476
[Sol - Yul] Add support for ABIDecode.
2020-05-26 13:30:37 -05:00
Mathias Baumann
884e7cbffc
Fix ICE when trying to decode too large static arrays
2020-05-26 19:36:18 +02:00
Alexander Arlt
cb5bfc7436
Update natspec comments on state variables.
...
- changing some warnings to errors
2020-05-26 11:18:24 -05:00
chriseth
309f0fbc8a
Unimplemented assert for conversion from calldata slices to memory.
2020-05-26 18:17:36 +02:00
chriseth
d0b6de580f
Disallow non-namable types for inline arrays.
2020-05-26 18:17:35 +02:00
chriseth
e4b31e7230
Introduce named concept for types.
2020-05-26 18:17:25 +02:00
chriseth
50b200a5d5
Merge pull request #8797 from ethereum/sol-yul-populating-internal-dispatch-on-demand
...
[Sol->Yul] Populating internal dispatch on demand
2020-05-26 18:17:05 +02:00
chriseth
d989dfd43f
Merge pull request #9027 from ethereum/issue-8265
...
Fix ICE by avoiding copyForLocation() on ArraySliceType
2020-05-26 17:49:11 +02:00
Mathias Baumann
b3cafe4583
Fix ICE by avoiding copyForLocation() on ArraySliceType
2020-05-26 17:27:46 +02:00
Kamil Śliwak
1a2e441bc5
Generate internal dispatch only for functions that might actually get called via pointers
...
- This also adds support for internal library calls as a side-effect since they'll now be pulled into the internal dispatch automatically.
2020-05-26 17:01:50 +02:00
chriseth
b7aa6cb1f7
Merge pull request #9026 from ethereum/sol-yul-refactor-new-conditional-whiskers-syntax-in-internal-dispatch
...
[Sol->Yul] New whiskers conditionals in internal dispatch template (refactor)
2020-05-26 17:00:43 +02:00
Kamil Śliwak
2716b5ff83
Replace conditionally empty whiskers variables for punctuation with <?+> syntax in IRGenerator::generateInternalDispatchFunctions()
2020-05-26 16:33:40 +02:00
Harikrishnan Mulackal
21e34d7ca9
Fixed seed for randomness, fixed conflicts in errorids
2020-05-26 18:21:47 +05:30
chriseth
5fedb4eab0
Merge pull request #9001 from a3d4/partfix-5819-refactor-typechecker
...
Refactor TypeChecker to assign different IDs to different errors
2020-05-26 11:59:54 +02:00
chriseth
9604174151
Rename asCallableFunction.
2020-05-26 11:35:12 +02:00
chriseth
e6b399c86e
Merge pull request #8942 from ethereum/calldataVariables
...
Calldata variables.
2020-05-26 11:34:40 +02:00
chriseth
33450619b1
Checks for uninitialized access to calldata variables.
2020-05-26 10:51:13 +02:00
chriseth
499cb0526f
Calldata variables.
2020-05-26 10:51:13 +02:00
chriseth
76d27bcfaa
Fix assumption for member not in memory.
2020-05-26 10:35:04 +02:00
Djordje Mijovic
4c3e78d046
Disallowing shifts by signed types
2020-05-26 10:18:21 +02:00
chriseth
69a028b49c
Merge remote-tracking branch 'origin/develop' into breaking
2020-05-26 10:11:23 +02:00
chriseth
6d64095ccf
Merge pull request #8987 from ethereum/sol-yul-bound-functions
...
[Sol->Yul] Bound functions
2020-05-25 16:53:33 +02:00
chriseth
44e62c1fae
Merge pull request #8997 from ethereum/sol-yul-refactor-no-internal-functions-with-arbitrary-parameters
...
[Sol->Yul] Remove unnecessary code for handling internal functions with arbitrary parameters (refactor)
2020-05-25 16:47:10 +02:00
chriseth
042dc965fa
Merge pull request #8952 from ethereum/sol-yul-refactor-simplify-end-visit-for-internal-calls
...
[Sol->Yul] Simplify end visit for internal calls (refactor)
2020-05-25 16:46:36 +02:00
chriseth
8e31c345a8
Merge pull request #8978 from ethereum/disturbance_stack
...
Add proper unipmlemented errors for array copying
2020-05-25 15:34:45 +02:00
a3d4
936ea6f950
Refactor TypeChecker to assign different IDs to different errors
2020-05-25 13:40:14 +02:00
chriseth
91aff43404
Merge pull request #8998 from a3d4/partfix-5819-add-error-tags-to-declarationtypechecker
...
Add error IDs to DeclarationTypeChecker
2020-05-25 11:36:06 +02:00
Mathias Baumann
d45bb2aa07
Add proper unipmlemented errors for array copying
2020-05-25 10:48:42 +02:00
a3d4
a499ef16fa
Fix spelling errors
2020-05-25 02:54:37 +02:00
a3d4
5870253b00
Shorten a couple of lines
2020-05-21 17:38:47 +02:00
a3d4
38e65a909a
Remove DocStringAnalyzer and DocStringParser class-specific error reporting functions
2020-05-21 00:26:14 +02:00
a3d4
66a8c7d1ab
Remove ReferencesResolver class-specific error reporting functions
2020-05-21 00:04:26 +02:00
a3d4
3a75b1da4d
Remove DeclarationTypeChecker class-specific error reporting functions
2020-05-20 23:56:25 +02:00
Kamil Śliwak
4a2ce57bed
Add support for bound function calls in IR generator
2020-05-20 21:10:20 +02:00
Kamil Śliwak
a68b4ab7ed
IRGeneratorForStatements: Slightly reorganize local variables in endVisit(MemberAccess)
...
- Add memberFunctionType accessible in the whole function to avoid declaring it multiple times
- Add objectCategory
2020-05-20 21:09:27 +02:00
Kamil Śliwak
87c598863f
IRGeneratorForStatements: Remove unnecessary code for handling internal functions with arbitrary parameters
...
- Internal functions cannot have arbitrary parameters
2020-05-20 21:08:59 +02:00
Kamil Śliwak
0943333276
Simplify endVisit() for internal calls
...
- Define IRHelpers::referencedFunctionDeclaration() to avoid repeating the same dynamic_casts over and over again.
2020-05-20 21:07:37 +02:00
chriseth
74b9b094c0
Merge remote-tracking branch 'origin/develop' into HEAD
2020-05-20 17:22:47 +02:00
chriseth
29405c223b
Merge pull request #8951 from ethereum/sol-yul-refactor-split-internal-dispatch
...
[Sol->Yul] Split internal dispatch into separate enumeration and code generation (refactor)
2020-05-20 16:28:24 +02:00
Leonardo
56b5f1bb12
Merge pull request #8976 from ethereum/libsmtutil
...
libsmtutil
2020-05-20 16:14:37 +02:00
hrkrshnn
4a001d568e
Removed null members from JSON output
2020-05-20 16:56:33 +05:30
chriseth
678a801daf
Merge pull request #8921 from a3d4/partfix-5819-remove-erroroccurred-flag-continued
...
Remove a dedicated error flag from DeclarationTypeChecker and other classes, continued
2020-05-20 13:23:37 +02:00
chriseth
84092edc5d
Merge pull request #8914 from random-internet-cat/down-with-unique-ptr
...
Down with unique_ptr!
2020-05-20 13:22:06 +02:00
Leonardo Alt
0eb067ae4f
Add SMTLogicError exception catches
2020-05-20 13:18:33 +02:00
Kamil Śliwak
6c6a8a74e8
IRGenerationContext: Extract code for enumerating dispatchable functions from generateInternalDispatch() into a separate function
2020-05-20 13:16:08 +02:00
Leonardo Alt
7a91c9b971
Remove Type from SolverInterface
2020-05-20 12:55:19 +02:00
Leonardo Alt
45eba27424
Rename namespace
2020-05-20 12:55:18 +02:00
Leonardo Alt
087605ea02
Create libsmtutil
2020-05-20 12:55:18 +02:00
Kamil Śliwak
bd75543900
Add IRNames::internalDispatch() and use it in IRGenerationContext
2020-05-20 12:48:49 +02:00
Kamil Śliwak
22c0568d34
IRGenerationContext::internalDispatch(): Remove unused local YulUtilFunctions instance
2020-05-20 12:46:32 +02:00
Kamil Śliwak
7d2292fbaf
Rename IRGenerationContext::internalDispatch() to generateInternalDispatchFunction()
2020-05-20 12:46:31 +02:00
a3d4
6bb177ce77
Remove dedicated error flags from DocStringParser and DocStringAnalyser
2020-05-20 04:17:49 +02:00
a3d4
6dbf23d52a
Remove a dedicated error flag from ReferencesResolver
2020-05-20 04:08:32 +02:00
Kamil Śliwak
1a521cc7ac
Use YulArity in IR generator
2020-05-19 23:03:21 +02:00
Kamil Śliwak
16e58449ab
ir/Common: Add YulArity struct
2020-05-19 23:03:15 +02:00
chriseth
22d5caa979
Merge pull request #8532 from aarlt/structured-docs-variables-aarlt
...
Allow NatSpec comments for state variables
2020-05-19 19:26:35 +02:00
chriseth
d422a406ba
Merge pull request #8983 from ethereum/develop
...
Merge develop into breaking.
2020-05-19 18:05:28 +02:00
Alexander Arlt
af8bb5fb60
Allow natspec comments on state variables.
2020-05-19 11:01:52 -05:00
Erik Kundt
7d37ed4531
Adds structured docs for variable declarations.
...
- adds natspec generation for state variables.
- exports structured docs for state variables to JSON.
2020-05-19 11:01:52 -05:00
Kamil Śliwak
b0ae85b6b0
IRGenerationContext::internalDispatch(): Don't use asCallableFunction() to get internal function type
2020-05-19 18:00:50 +02:00
Djordje Mijovic
bd64b971b9
Fixing tests on breaking branch.
2020-05-19 17:42:19 +02:00
chriseth
f70ff0dfaa
Merge pull request #8977 from ethereum/mapping-type-error
...
Error when Mapping type in (non-local) storage is assigned to
2020-05-19 16:52:54 +02:00
Harikrishnan Mulackal
774edd4670
Error when Mapping type in (non-local) storage is assigned to
2020-05-19 19:12:38 +05:30
chriseth
3b27b4347c
Merge pull request #8916 from ethereum/smt_array_push_pop
...
[SMTChecker] Support array push/pop
2020-05-19 15:41:10 +02:00
chriseth
3275243c89
Merge pull request #8898 from mijovic/sol2YulByteArrayPush
...
[Sol->Yul] Implementing ByteArray push() and pop()
2020-05-19 15:28:01 +02:00
Djordje Mijovic
d235d0c166
[Sol->Yul] Implementing Byte array push() and pop()
2020-05-19 14:47:00 +02:00
Leonardo Alt
2435ab938c
Add verification target for empty pop
2020-05-18 16:35:56 +02:00
Leonardo Alt
d4d26c02e4
Assume that push will not overflow
2020-05-18 16:35:56 +02:00
Leonardo Alt
82db35e563
[SMTChecker] Support array push/pop
2020-05-18 16:33:34 +02:00
Jason Cobb
20c8851f43
Use optional for CompilerStack::Contract source mappings
2020-05-18 10:24:38 -04:00
chriseth
f92a4f1965
Provide runtime object in Yul mode.
2020-05-18 13:48:23 +02:00
Kamil Śliwak
465e4d4088
Extract more functions for generating function and variable names into IRNames
2020-05-15 14:51:00 +02:00
Leonardo Alt
a0c605aa85
[SMTChecker] Support array length
2020-05-14 23:32:29 +02:00
Kamil Śliwak
7af7273b60
Move static functions for constructing names from IRGenerationContext into the new Common
module
2020-05-14 19:48:00 +02:00
chriseth
2d1e7d9504
Merge pull request #8931 from random-internet-cat/lazy-init
...
Add LazyInit
2020-05-14 18:54:19 +02:00
chriseth
7ef114db9a
Merge pull request #8841 from ethereum/sol_yul_ripemd160_ecrecover
...
[Sol - Yul] Add support for ripemd160 & ecrecover.
2020-05-14 18:43:55 +02:00
Alexander Arlt
91e9d54c71
[Sol - Yul] Add support for ripemd160 & ecrecover.
2020-05-14 10:44:39 -05:00
chriseth
993a7941b1
Merge remote-tracking branch 'origin/develop' into breaking
2020-05-14 17:24:40 +02:00
Jason Cobb
eae31559be
Use LazyInit for CompilerStack::Contract members
2020-05-14 10:39:53 -04:00
Jason Cobb
cffd1eaff1
Use LazyInit for ContractDefinition::m_interfaceFunctionList
2020-05-14 10:32:01 -04:00
Jason Cobb
413fa92cee
Use LazyInit for ContractDefinition::m_interfaceEvents
2020-05-14 10:29:29 -04:00
Jason Cobb
0e26700f65
Use LazyInit for MemberList::m_storageOffsets
2020-05-14 10:29:26 -04:00
chriseth
1b86f27002
Merge pull request #8935 from ethereum/moveScopesIntoResolver
...
Move scopes into resolver.
2020-05-14 14:20:58 +02:00
chriseth
e751a1c23d
Move scopes into resolver.
2020-05-14 13:16:47 +02:00
chriseth
257bc6a416
Merge remote-tracking branch 'origin/develop' into breaking
2020-05-14 13:04:46 +02:00
Djordje Mijovic
472fb21ee0
[Sol->Yul] Enabling new bytes(n)
2020-05-14 12:55:14 +02:00
chriseth
504b8d29c9
Merge pull request #8907 from ethereum/licenseIdentifier
...
Check for SPDX license identifiers.
2020-05-14 01:21:24 +02:00
Daniel Kirchner
97296d8622
Allow ABI encoding for array slices without explicit casts.
2020-05-13 18:20:07 +02:00
chriseth
3872a1f000
Add support for SPDX license identifiers.
2020-05-13 18:16:59 +02:00
chriseth
e9446475bb
Merge pull request #8924 from ethereum/arraySliceBug
...
Fix array slice bug.
2020-05-13 16:06:28 +02:00
Daniel Kirchner
6f04664cfa
Disallow array slicing for arrays with dyanmically encoded base types.
2020-05-13 15:52:22 +02:00
chriseth
aca700497c
Merge pull request #8903 from ethereum/exponentiation-bug
...
Fix exponentiation bug
2020-05-13 15:49:23 +02:00
Harikrishnan Mulackal
47e9a13e8a
Fix exponentiation bug
2020-05-13 13:53:06 +05:30
chriseth
b2122d479f
Merge pull request #8915 from a3d4/partfix-5819-remove-erroroccurred-flag
...
Remove a dedicated error flag from DeclarationTypeChecker and other classes
2020-05-12 20:18:33 +02:00
a3d4
02d1f8c41a
Remove a dedicated error flag from DeclarationTypeChecker
2020-05-12 18:13:17 +02:00
chriseth
0be56a0abf
Merge remote-tracking branch 'origin/develop' into breaking
2020-05-12 17:48:53 +02:00
chriseth
901b421bb8
Merge pull request #8910 from ethereum/natspec-return-bug
...
Bug that ignored return tag when no other devdoc tags were present
2020-05-12 16:47:07 +02:00
Harikrishnan Mulackal
095e17f7f9
Bug that ignored return tag when no other devdoc tags were present
2020-05-12 20:05:22 +05:30
chriseth
077cab0860
Merge pull request #8902 from a3d4/partfix-5819-add-more-error-ids
...
Add error IDs to OverrideChecker, BMC and ContractLevelChecker
2020-05-12 13:22:42 +02:00
a3d4
02eee54f38
Add error IDs to ContractLevelChecker
2020-05-12 11:42:29 +02:00
a3d4
7cae074b8a
Add error IDs to BMC
2020-05-12 11:39:18 +02:00
a3d4
1d5350e32f
Add error IDs to OverrideChecker
2020-05-12 02:26:02 +02:00
Daniel Kirchner
b9c63e0032
Merge pull request #8894 from ethereum/dockerUbuntuFocal
...
Update Dockerfiles and CI scripts to Ubuntu 20.04 and simplify them.
2020-05-12 00:52:21 +02:00
Daniel Kirchner
c2f5a66a79
Implement .creationCode for Sol->Yul.
2020-05-11 18:51:51 +02:00
Daniel Kirchner
3fbde6e782
Merge pull request #8856 from ethereum/implicitConstructorCallvalueCheck
...
Implicit constructor callvalue check
2020-05-11 18:50:36 +02:00
Daniel Kirchner
c1ed5bbb0f
Update Dockerfiles and CI scripts to Ubuntu 20.04 and simplify them.
2020-05-11 17:35:01 +02:00
chriseth
debee799dc
Merge pull request #8892 from ethereum/boost-cxx11
...
Replace boost/algorithm/cxx11 with C++11 features
2020-05-11 16:29:42 +02:00
Daniel Kirchner
79b217dfb3
Callvalue checks for implicit constructors.
2020-05-11 16:14:34 +02:00
chriseth
5566cd9f74
Merge pull request #8843 from ethereum/deprecate-now
...
[BREAKING] Deprecate keyword now
2020-05-11 16:09:21 +02:00
chriseth
f1e0aa7a56
Merge pull request #8763 from ethereum/bareCall
...
IR code generation for call.
2020-05-11 16:06:54 +02:00
chriseth
e2f7e8a3a7
Merge pull request #8890 from ethereum/fixclangv10
...
Fix clang v10 compilation errors
2020-05-11 15:39:09 +02:00
Alex Beregszaszi
875415a132
Replace boost/algorithm/cxx11 with C++11 features
2020-05-11 14:27:54 +01:00
chriseth
c0bf529236
Support bare calls.
2020-05-11 15:11:46 +02:00
chriseth
4c13ce24f0
Merge pull request #8887 from ethereum/boost-fs
...
Remove boost::filesystem where it is not needed
2020-05-11 15:09:54 +02:00
chriseth
0248303c15
Merge pull request #8872 from ethereum/int-min-max
...
implemented type(X).min and type(X).max for all integer types
2020-05-11 15:08:19 +02:00
Mathias Baumann
fe43132003
Fix clang v10 compilation errors
2020-05-11 14:59:51 +02:00
Alex Beregszaszi
76dfda7c1c
Replace boost:variant with std::variant in StandardCompiler
2020-05-11 12:39:53 +01:00
Alex Beregszaszi
ad1d2558eb
Drop Boost::system from libsolidity
2020-05-11 11:36:11 +01:00
Alex Beregszaszi
c31a93b3f2
Remove boost::filesystem where it is not needed
...
A two uses in CommonIO remain for the compiler (plus testing/tools use it extensively)
2020-05-11 11:19:11 +01:00
Harikrishnan Mulackal
e54c4eecfc
implemented type(X).min and type(X).max for all integer types
2020-05-11 14:51:13 +05:30
a3d4
0b09a77689
Removed minor parameter redundancy
2020-05-09 01:45:02 +02:00
a3d4
c3e519a151
Add unique IDs to error reporting calls
2020-05-09 01:28:55 +02:00
chriseth
aa7684fb54
Merge pull request #8864 from a3d4/fix-error-reporting-source-code-format
...
Fix error reporting source code format
2020-05-07 20:15:51 +02:00
chriseth
a0e291bd06
Implement Yul IR generation for abi.encode*
2020-05-07 19:39:15 +02:00
chriseth
d0b82fe854
Merge pull request #8869 from ethereum/useSlotes
...
Use vector of slots.
2020-05-07 19:03:59 +02:00
chriseth
75ca072ae6
Assertion about getters for non-value type immutables.
2020-05-07 18:18:40 +02:00
chriseth
f38cf85482
Use vector of slots.
2020-05-07 17:54:04 +02:00
Mathias Baumann
eb4926cb48
run addMissingFunctions only once
2020-05-07 17:06:11 +02:00
chriseth
3212cb6caa
Merge pull request #8859 from ethereum/noRuntimeForImmutable
...
trigger error when runtimeCode is called on contracts with immutables
2020-05-07 16:08:27 +02:00
chriseth
f42dc70c9f
Merge pull request #8863 from ethereum/nonReversedEncoder
...
Introduce non-reversed version of tupleEncoder.
2020-05-07 15:47:32 +02:00
Mathias Baumann
50e59f1008
trigger error when runtimeCode is called on contracts with immutables
2020-05-07 15:10:04 +02:00
chriseth
e986fde0c1
Introduce non-reversed version of tupleEncoder.
2020-05-07 15:08:09 +02:00
chriseth
80b4e51fd6
Merge pull request #8865 from a3d4/fix-8712-abi-compiler-error
...
Fix ABI internal compiler error caused by an internal constructor
2020-05-07 10:55:00 +02:00
a3d4
5e9502bfae
Fix ABI internal compiler error caused by an internal constructor
2020-05-07 05:49:49 +02:00
a3d4
7e1835af71
Fix error reporting source code format
2020-05-07 04:46:02 +02:00
chriseth
6fb112fa8e
Remove some unneeded headers.
2020-05-07 01:49:46 +02:00
chriseth
5e46ef7df5
Merge pull request #8680 from a3d4/fix-5819-tagging-error-cases
...
Tag error cases with unique IDs
2020-05-07 01:12:56 +02:00
Alex Beregszaszi
327c75bc1b
IR generation for shifts
2020-05-06 19:14:23 +02:00
chriseth
76275cf34a
Merge pull request #8824 from ethereum/solYulDirtyMemory
...
Fix accessing memory reference types in yul codegen and clean up on memory reads.
2020-05-06 16:17:19 +02:00
Daniel Kirchner
234ffcf278
Merge pull request #8718 from ethereum/irConstants
...
IR generation for constants.
2020-05-06 16:05:17 +02:00
a3d4
8f68c04358
Add unique IDs to error reporting calls
2020-05-06 13:53:46 +02:00
a3d4
e3641b88ec
Groundwork. Prepare for automatic tagging
...
[Not compilable until the next commit]
2020-05-06 13:52:28 +02:00
Daniel Kirchner
c25a3eba14
Fix accessing memory reference types in yul codegen and clean up on memory reads.
2020-05-06 11:34:11 +02:00
Harikrishnan Mulackal
b5612f96c9
Deprecated identifier now
2020-05-05 21:11:15 +05:30
chriseth
02c20698c9
IR generation for constants.
2020-05-05 17:07:55 +02:00