Commit Graph

22 Commits

Author SHA1 Message Date
Mathias Baumann
56ebea8b2f ControlFlowAnalyser: Also consider called functions in a flow 2021-06-01 15:54:37 +02:00
Mathias Baumann
5f313ee52a ControlFlowAnalyzer: Use temporary reference for more readable code 2021-04-26 13:24:17 +02:00
Mathias Baumann
07a1d230cd Fix missing error when accessing unintialized variables. 2021-01-25 14:44:15 +01:00
Mathias Baumann
32b4f18023 Print warning for unnamed return parameters and no return statement 2020-10-13 13:11:29 +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
chriseth
33450619b1 Checks for uninitialized access to calldata variables. 2020-05-26 10:51:13 +02:00
a3d4
8f68c04358 Add unique IDs to error reporting calls 2020-05-06 13:53:46 +02:00
Daniel Kirchner
809e3503ba Control flow analysis for inline assembly. 2020-03-09 16:23:10 +01:00
alex
e4b18e85e6 Replaced SourceLocation::isEmpty() with isValid() and hasText().
The function SourceLocation::isEmpty() had somewhat dual role.
Sometimes it indicates that the SourceLocation is invalid.
Sometimes it means that there is no corresponding source text.

Hence the proposal is to replace it with two functions, isValid() and hasText().

I also removed Scanner::sourceAt(). (Do we have a rule of thumb to remove unused code?)

Since hasText() checks that start and end are valid indices for source, I adjusted a couple of tests to avoid empty source strings.
2020-02-03 08:04:21 +01:00
Christian Parpart
345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
chriseth
ca21659749 Fix error message about accessing storage pointers. 2019-09-24 10:52:02 +02:00
chriseth
c047803b80 Change BreadthFirstSearch to use value types instead of pointers. 2019-08-15 16:10:10 +02:00
chriseth
1a823f0bf8 Fix tabs/spaces. 2019-02-13 17:05:48 +01:00
Daniel Kirchner
0dfd4a726e Warn about unreachable code. 2019-01-10 10:36:50 +01:00
Leonardo Alt
36d8a98664 Sort includes in libsolidity/analysis 2018-12-17 12:35:16 +01:00
Daniel Kirchner
788612d2ef Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses. 2018-12-12 04:20:53 +01:00
Christian Parpart
d67322a186 Introduce namespace langutil in liblangutil directory.
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Daniel Kirchner
b5e9d849ef Ignore unimplemented functions for storage returns. 2018-11-13 12:18:22 +01:00
Daniel Kirchner
4ae59acc09 Consider mappings return values in control flow analysis. 2018-08-13 16:33:37 +02:00
Daniel Kirchner
35c5b7de25 Turn warning about uninitialized storage returns into an error. 2018-08-02 19:34:38 +02:00
Daniel Kirchner
16e966dea0 Add control flow analyzer and test for uninitialized storage returns. 2018-05-14 20:23:40 +02:00