Commit Graph
4526 Commits
Author SHA1 Message Date
Kamil Śliwak 6c28120f19 Move CallGraph structure to a separate module 2021-02-23 10:47:02 +01:00
Kamil Śliwak 769a7687c6 Make CompilerStack::contractDefinition() public 2021-02-23 10:47:02 +01:00
Mathias Baumann 53d70dec57 CompilerStack: Build call graphs in the analysis phase 2021-02-23 10:46:28 +01:00
Mathias Baumann 4c283f00c1 Add IRGenerator::verifyCallGraphs() 2021-02-23 10:46:28 +01:00
Kamil Śliwak 74ef7dd790 FunctionCallGraph: operator<< for printing nodes in an unambiguous way 2021-02-23 10:46:28 +01:00
Mathias Baumann 4c1f8d69f9 Implement a Function Call Graph 2021-02-23 10:46:28 +01:00
Mathias Baumann 64d14b4cc4 IRNames::function(): Return correct name if the function is a constructor 2021-02-23 10:29:12 +01:00
Kamil Śliwak 529495c530 CompilerStack: Typo in a comment 2021-02-23 10:29:12 +01:00
Kamil Śliwak e27afe93a9 CompilerStack: Fix style on local variable name 2021-02-23 10:29:12 +01:00
Kamil Śliwak 13a9d21d88 FunctionType: Add assertions against missing type annotations
- This should make it easier to realize that one of the analysis phases has not been executed.
2021-02-23 10:29:12 +01:00
Mathias Baumann 8bacf03ffe MultiUseYulFunctionCollector::requestedFunctions(): Refactor the loop to use destructuring 2021-02-23 10:29:12 +01:00
chriseth e75e3fc2e3 Merge pull request #10977 from ethereum/replace-throw-with-boost-macro
Replace raw throw with BOOST_THROW_EXCEPTION.
2021-02-22 16:18:13 +01:00
chriseth 78a097a012 Only warn about variables being shadowed in inline assembly. 2021-02-19 14:29:22 +01:00
Alexander Arlt c44bb7e7ef Replace raw throw with BOOST_THROW_EXCEPTION. 2021-02-18 20:23:59 -05:00
Alex Beregszaszi f766700000 Remove unreachable warning for shift/exp operator 2021-02-16 13:17:58 +00:00
Alex Beregszaszi efe3199981 Remove unreachable assertion for import resolution 2021-02-16 12:55:01 +00:00
Alex Beregszaszi fd9050614a Remove untriggerable errors on variadic calls (which have been removed) 2021-02-15 22:45:57 +00:00
hrkrshnn 0135cae222 Fix IR bug: constructor parameter that needs multiple stack slots
When an argument had multiple stack slots, like `function() external`, there wasn't enough variables
assigned for the constructor. This lead to some mismatch between return values and arguments between
some functions.
2021-02-12 17:42:02 +01:00
Djordje MijovicandKamil Śliwak 68a4efb2e7 Refactor overwriteRelease flag.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-02-12 10:37:59 +01:00
hrkrshnn 7786e6d561 Fix IR bug when modifier parameter was function return variable
The bug was that function return variables were not part of the m_context.localVariable during
the modifier generation and a looking up them was throwing.
2021-02-11 14:44:55 +01:00
chriseth 1716dcfb57 Merge pull request #10950 from ethereum/removeChecks
[SolYul] Remove (hopefully) unnecessary checks.
2021-02-11 14:10:05 +01:00
chriseth 45dc705683 Remove unnecessary checks. 2021-02-11 13:08:03 +01:00
Christian Parpart 9ca389d6cd MemberList.Member's last argument (declaration) made mandatory to avoid accidental missing out during construction. 2021-02-11 10:46:14 +01:00
Christian Parpart b0d3412fa9 Fixes missing EnumValue declaration in nativeMembers. 2021-02-11 10:46:14 +01:00
chriseth cbb197f7fa Merge pull request #10833 from ethereum/ast-precise-name-locations
Extend the Solidity AST for precise locations of names
2021-02-11 10:44:58 +01:00
Harikrishnan Mulackal 215233d5c8 Merge pull request #10945 from ethereum/constructor-modifier-bugfix
Fix IR bug about calling the wrong modifier during construction
2021-02-10 21:42:45 +01:00
hrkrshnn 2f30fdaa21 Fix IR bug about calling the wrong modifier during construction 2021-02-10 20:53:11 +01:00
Christian Parpart 32ba5f5ae7 libsolidity: Extend the AST for named AST nodes in order to get precise locations for names.
The actual SourceLocation on an ASTNode is representing the whole
ASTNode whereas in an LSP (for example) you are also interested in the
SourceLocation of a name of a construct (e.g. variable decarlation, function definition, ...).

This also properly encodes non-existend sources as `-1` in the JSON output (eliminating the use of `numeric_limits<size_t>::max()`).
2021-02-10 18:13:09 +01:00
chriseth a72ab1c9c1 Replace "runtime" by "deployed" naming. 2021-02-10 00:56:16 +01:00
chriseth 9b20c9840a Merge pull request #10885 from ethereum/heuristic-revamp
Yul Backend: Get rid of heuristics for finding the matching runtime
2021-02-10 00:49:56 +01:00
chriseth 9a621e91e3 Merge pull request #10761 from ethereum/oldOptimizerInlining
Simple inlining for old optimizer.
2021-02-09 19:35:12 +01:00
Đorđe Mijović 30857493ef Merge pull request #10927 from ethereum/fixedPointAssertionSol2Yul 2021-02-09 19:14:09 +01:00
Daniel Kirchner cb74a45fd6 Add inlining for old optimizer. 2021-02-09 19:08:58 +01:00
chriseth e777cad78a Merge pull request #10924 from ethereum/exportDocs
Export statement documentation.
2021-02-09 18:23:45 +01:00
Djordje Mijovic 9438706daf [Sol->Yul] Adding assertion for shift amount not being of FixedPointType. 2021-02-09 17:58:49 +01:00
chriseth fcdb5e0b40 Export statement documentation. 2021-02-09 17:33:01 +01:00
Djordje Mijovic 993c8c0734 [Sol->Yul] Adding unimplemented assert for fixed point types on right shift. 2021-02-09 16:17:56 +01:00
Mathias Baumann e4f1257c83 Yul Backend: Get rid of heuristics for finding the matching runtime 2021-02-09 14:50:25 +01:00
Đorđe Mijović 4fd5643970 Merge pull request #10912 from ethereum/calldataLValueSol2Yul
[Sol->Yul] Check lvalue kind is stack in case of calldata.
2021-02-08 14:19:24 +01:00
Djordje Mijovic e53feaedc4 [Sol->Yul] Check lvalue kind is stack in case of calldata. 2021-02-08 13:27:51 +01:00
chriseth 8a876c8f79 Merge pull request #10911 from ethereum/fixedPointAssertionSol2Yul
[Sol->Yul] Adding unimplemented assert for fixed point type shifting.
2021-02-08 13:20:57 +01:00
Djordje Mijovic 97e9829988 [Sol->Yul] Adding unimplemented assert for fixed point type shifting. 2021-02-08 13:13:19 +01:00
Djordje Mijovic 706f5d9874 [Sol2Yul] Fixing setLValue for calldata types. 2021-02-08 12:42:10 +01:00
chriseth d4ce896582 Merge pull request #10886 from ethereum/issue-10874
OverrideSpecifier: Check for null before dereferencing
2021-02-04 14:12:07 +01:00
Mathias Baumann 3a8a74cbc7 OverrideSpecifier: Check for null before dereferencing 2021-02-04 13:17:28 +01:00
Daniel Kirchner 5faefdea65 Merge pull request #10893 from ethereum/string2BytesSol2Yul
[Sol->Yul] Fixing string calldata to bytes calldata conversion.
2021-02-04 10:33:40 +01:00
Djordje Mijovic 530435439d [Sol->Yul] Fixing string calldata to bytes calldata conversion. 2021-02-04 09:30:19 +01:00
Leonardo 7405dc5b7f Merge pull request #10836 from ethereum/smt_fix_cex_inheritance
Fix inheritance bug in CHC cex
2021-02-03 18:49:25 +01:00
Martin Blicha d99256aae7 [SMTChecker] refactoring of resetting storage variables 2021-02-03 15:53:58 +01:00
Martin Blicha f1013427a7 [SMTChecker] refactoring the accessing the encoding state 2021-02-03 15:53:58 +01:00