Commit Graph

3619 Commits

Author SHA1 Message Date
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
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
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
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
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
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