Paul Fultz II
39f4374446
Improve diagnostics with null smart pointers ( #1805 )
...
* Warn when dereferencing null smart pointers
* Improve tracking of smart pointer values
* Use library isSmartPointer
2019-04-26 11:30:09 +02:00
Daniel Marjamäki
92f4113b59
Array index: Checking array index out of bounds for dynamic buffers
2019-03-17 13:09:15 +01:00
Daniel Marjamäki
a2a216bbe3
SymbolDatabase: Improved handling of 'normal' non simplified token list
2019-03-15 19:00:42 +01:00
Daniel Marjamäki
bd7790fd8c
Update copyright year
2019-02-09 07:24:06 +01:00
Paul Fultz II
3975913637
Extend lifetime checking for references
...
This will use the lifetime checker for dangling references. It will find these cases for indirectly assigned reference:
```cpp
int &foo()
{
int s = 0;
int& x = s;
return x;
}
```
This will also fix issue 510 as well:
```cpp
int &f( int k )
{
static int &r = k;
return r;
}
```
2019-01-23 07:29:16 +01:00
Lauri Nurmi
f267900257
Fix spelling of "overridden" in function names.
...
One 'd' was missing.
2019-01-15 06:22:14 +01:00
IOBYTE
0f83aff3b8
Improve trailing return type support. ( #1520 )
...
* Improve trailing return type support.
* Partial fix for #8889 (varid on function when using trailing return type)
* Handle operators in templates.
2018-12-13 06:34:10 +01:00
Daniel Marjamäki
d5a478d5c5
astyle formatting
...
[ci skip]
2018-11-10 21:30:01 +01:00
Paul Fultz II
1ffcc6b730
Add initial lifetime checker ( #1448 )
...
* Inital valueflow lifetime checker
* Forward values
* Add initial tests
* Fix deplicate messages
* Fix traversing nested lambdas
* Turn test case into a todo
* Skip if returning a container
* Fix FP when using references
* Add missing header
* Fix FP from broken scopes
* Fix FP with static variable
* Add test for more FPs
* Parse lambda functions
* Check for capture by value
* Add tests for using a container and lambda together
* Fix cppcheck errors
* Add test for nextAfterAstRightmostLeaf
* Add valueflow tests
* Update error message
* Check for correct lambda token
* Improve error path reporting
* Fix hang when parsing arrays that look almlost like lambdas
2018-11-10 16:40:40 +01:00
Daniel Marjamäki
efd92fd714
Refactoring: reuse utility function in SymbolDatabase
2018-11-04 13:29:29 +01:00
Daniel Marjamäki
929725f3aa
Code cleanup
2018-06-20 10:39:21 +02:00
Daniel Marjamäki
b4cb2505c3
SymbolDatabase: Add Variable::valueType(). First step to reuse ValueType handling in Variable
2018-06-20 10:00:15 +02:00
Daniel Marjamäki
eb978ee192
Refactoring: delete assignment operator
2018-06-19 14:00:50 +02:00
Daniel Marjamäki
ad4ce84cf7
Rename private member variables
2018-06-17 17:20:16 +02:00
Daniel Marjamäki
d9aeeb1d09
Renamed private member cpp to mIsCpp
2018-06-16 23:30:00 +02:00
Daniel Marjamäki
306b2a9810
Renamed private member defaultSignedness
2018-06-16 23:25:35 +02:00
Daniel Marjamäki
678e3271d4
Rename private flags member to mFlags
2018-06-16 23:11:45 +02:00
Daniel Marjamäki
15f7c26706
Renamed _blankTypes
2018-06-16 20:33:07 +02:00
Daniel Marjamäki
56126d6e2d
Renamed _variableList to mVariableList
2018-06-16 20:31:47 +02:00
Daniel Marjamäki
e8a00a38ac
Rename _scope to mScope
2018-06-16 20:29:17 +02:00
Daniel Marjamäki
78974e9267
Rename _type to mType
2018-06-16 20:25:54 +02:00
Daniel Marjamäki
fc6f17ed87
Rename _dimensions to mDimensions
2018-06-16 20:23:58 +02:00
Daniel Marjamäki
363f4ca939
rename _flags to mFlags
2018-06-16 16:14:34 +02:00
Daniel Marjamäki
67b111f11e
SymbolDatabase: rename _constness to mConstness
2018-06-16 16:13:26 +02:00
Daniel Marjamäki
5154eb10c6
SymbolDatabase: rename _access
2018-06-16 16:12:27 +02:00
Daniel Marjamäki
7dfd4f61a1
SymbolDatabase: rename _index
2018-06-16 16:11:40 +02:00
Daniel Marjamäki
79ffe1d4fc
Rename _tokenizer, _settings, _errorLogger
2018-06-16 16:10:28 +02:00
Daniel Marjamäki
8209c4aebd
SymbolDatabase: rename _start and _end
2018-06-16 16:03:36 +02:00
Daniel Marjamäki
311454669f
SymbolDatabase: rename _name
2018-06-16 15:57:16 +02:00
IOBYTE
3982c81394
Add support for C++ attribute nodiscard for functions. ( #1269 )
2018-05-29 21:43:56 +02:00
PKEuS
090a178ed6
Refactorization in SymbolDatabase: Do not redundantly store name in FriendInfo, and store FriendInfo in vector instead of list
2018-05-14 12:18:59 +02:00
IOBYTE
184537884f
Don't remove the volatile keyword so we can properly overload functions. ( #1218 )
...
* Don't remove the volatile keyword so we can properly overload functions.
I fixed all the checks that had tests that use volatile. There will
probably be more changes needed due to lack of test coverage for
volatile in some checks.
* Fix unused private function warning.
2018-05-10 07:40:01 +02:00
Daniel Marjamäki
59cc479855
Save bitfield bit counts
2018-05-02 20:55:11 +02:00
IOBYTE
c3c1abd05e
SymbolDatabase: improve checking of uninstantiated templates ( #1196 )
...
* SymbolDatabase: improve checking of uninstantiated templates
* Add bailout and debug warning for '>' token without a link in SymbolDatabase::findFunction()..
Don't crash on bad code simplification from tokenizer.
2018-05-01 07:32:19 +02:00
Daniel Marjamäki
ff732e41ac
SymbolDatabase: Remove unused Function constructor
2018-04-29 14:57:02 +02:00
Daniel Marjamäki
ca8e19c96d
SymbolDatabase: Refactor SymbolDatabase: variable list
2018-04-28 09:38:33 +02:00
Daniel Marjamäki
f336c2efe7
Refactoring; Renamed Scope::classStart and Scope::classEnd
2018-04-27 22:36:30 +02:00
Daniel Marjamäki
25599a76a7
Handle 'final' specifier better.
2018-04-27 14:57:43 +02:00
Daniel Marjamäki
b830f462e6
Added missingOverride checker; Function 'f' overrides function in base class but does not have the 'override' keyword.
2018-04-27 11:12:09 +02:00
Daniel Marjamäki
d15b945c9e
SymbolDatabase::isFunction: Fix wrong detection function
2018-04-27 10:24:02 +02:00
Daniel Marjamäki
e97be9db2f
SymbolDatabase: Refactoring, move logic from SymbolDatabase to Function class. Add a Function::isOverride() method.
2018-04-25 12:05:49 +02:00
Daniel Marjamäki
9aeb2aaa17
update doxygen comments
2018-04-25 10:14:57 +02:00
Daniel Marjamäki
b94d8fd686
SymbolDatabase: Improve doxygen comments
2018-04-24 13:03:32 +02:00
Daniel Marjamäki
e73fe49d3c
4e820b6c4a
2018-04-14 15:46:55 +02:00
Daniel Marjamäki
be78e44c3f
Revert "I see compilation problems with std::multimap::emplace on a old system so lets avoid that"
...
This reverts commit 4e820b6c4a
.
2018-04-14 15:43:14 +02:00
Daniel Marjamäki
4e820b6c4a
I see compilation problems with std::multimap::emplace on a old system so lets avoid that
2018-04-14 15:19:04 +02:00
Daniel Marjamäki
f7d65cd735
SymbolDatabase: add constness attribute for Variable
2018-04-12 20:23:34 +02:00
PKEuS
d2146844dd
Refactorizations:
...
- Replace several push_back-calls by emplace_back
- Replace some x = x.substr(0, y) calls by x.erase(y)
2018-04-11 09:44:35 +02:00
Daniel Marjamäki
0daa3bba30
ValueType: Improved type handling of containers when [] operator is used
2018-04-06 22:26:35 +02:00
IOBYTE
06133fa3ba
Refactor findFunction to unify two ValueFlow paths. ( #1149 )
2018-04-05 06:46:48 +02:00