268 Commits

Author SHA1 Message Date
Daniel Marjamäki
276f017fbe
Partial fix for (Safety: show what checks are enabled/disabled) ()
Example output on stdout:
```
$ ./cppcheck m1.cpp 
Checking m1.cpp ...
Active checkers: 59/177
```
2023-08-29 12:00:52 +02:00
chrchr-github
818ebb8d7e
Fix autovarInvalidDeallocation regression () 2023-06-29 07:42:53 +02:00
chrchr-github
bb962e2bc3
Enable and mitigate readability-else-after-return () 2023-06-20 18:43:21 +02:00
chrchr
b41f9af2c5 Fix FP autovarInvalidDeallocation 2023-06-16 17:21:37 +02:00
chrchr-github
24b0d08753
Fix FP autoVariables ()
* Fix  FP autoVariables when reassigning argv

* Fix  FN autoVariables with array and std::string

* Add test

* Format

* Format

* Simplify check, fix inconclusive

* Fix merge, add test

* Fix FPs

* Format

* Format

* Undo move

* Format
2023-06-10 16:28:29 +02:00
chrchr-github
238cf75f6f
Fix FN autoVariables with array and std::string ()
* Fix  FP autoVariables when reassigning argv

* Fix  FN autoVariables with array and std::string

* Add test

* Format

* Format
2023-05-31 20:55:55 +02:00
chrchr-github
4c1e06a84b
Fix Regression: false negative autovarInvalidDeallocation since 1.79 () 2023-05-28 14:34:07 +02:00
chrchr-github
ac41b45a5f
Fix danglingLifetime of static variable () 2023-05-28 14:33:12 +02:00
chrchr-github
163fb79de1
Fix FP autoVariables when reassigning argv () 2023-05-28 13:51:41 +02:00
chrchr-github
78182d4773
Fix FN constVariablePointer ()
* Fix FN constVariablePointer

* Fix FP

* Add const

* Fix tests

* Add const
2023-05-22 19:53:51 +02:00
chrchr-github
6a8c70c1b9
Fix false negative: autoVariables [inconclusive] (regression) ()
* Fix  false negative: autoVariables [inconclusive] (regression)

* Use link()

* Use linkAt()

* Skip over [][]
2023-05-13 14:11:01 +02:00
Oliver Stöneberg
bd1ae69b00
cleaned up includes based on include-what-you-use () 2023-03-02 21:50:14 +01:00
Oliver Stöneberg
afd13ea11d
ValueFlow: some interface and namespace cleanups () 2023-01-28 10:20:47 +01:00
Daniel Marjamäki
464fbe8d53 Update copyright year 2023-01-28 10:16:34 +01:00
Oliver Stöneberg
bea6aec2b2
extracted ValueFlow::Value to vfvalue.{cpp|h} () 2023-01-26 22:23:22 +01:00
Oliver Stöneberg
a09667a6d9
removed unused error messages () 2023-01-07 10:35:39 +01:00
Oliver Stöneberg
1cfe49e340
use const_iterator where possible () 2022-12-30 15:13:47 +01:00
Oliver Stöneberg
3c68b9b29f
use cbegin() and cend() with const_ierator loops () 2022-12-20 20:32:16 +01:00
chrchr-github
665e4230f2
Fix FP returnDanglingLifetime, std::unique_ptr and implicit conversion to bool () 2022-11-27 09:24:19 +01:00
chrchr-github
e046232535
Fix FP returnDanglingLifetime for pointer to struct member in static array ()
* Fix   FP returnDanglingLifetime for pointer to struct member in static array

* Undo
2022-10-22 00:27:30 +02:00
chrchr-github
3273e51fd5
Fix FN useStlAlgorithm with iterators () 2022-10-16 13:46:26 +02:00
Oliver Stöneberg
cff1cd9cda
applied clang-tidy misc-const-correctness fixes for POD types, iterators and references ()
* applied `misc-const-correctness` fixes for POD types and iterators

* applied `misc-const-correctness` fixes for references
2022-10-02 07:12:40 +02:00
chrchr-github
266174ddc4
Fix danglingTemporaryLifetime reported in two different locati… ()
* Fix  danglingTemporaryLifetime reported in two different locations for std::string_view usage

* Missing include

* Add test
2022-09-14 07:28:04 +02:00
Oliver Stöneberg
d73a33d17e
avoid redundant Token::declEndToken() calls () 2022-08-20 20:50:14 +02:00
umanamente
460f63558d
Fixed typo in checkautovariables.cpp: getPointerDepth() () 2022-08-04 07:52:10 +02:00
PKEuS
1275b5275e
LCppC backport: Various optimizations ()
* Optimization: Use Token::eIncDecOp instead of expensive Token::Match calls

Merged from LCppC.

* Small Optimizations: - Moved a std::set that is only need during initialization of SymbolDatabase to function scope - Use std::vector instead of std::list

Merged from LCppC.

* Optimization: Refactorized various Token::Match calls and surrounding conditions

Merged from LCppC.

* Refactorization: Cleanup usage of std::multimap

Merged from LCppC.
2022-06-08 16:58:57 +02:00
Oliver Stöneberg
45158ec064
cleaned up includes based on include-what-you-use ()
* cleaned up includes based on include-what-you-use

* updated translations
2022-04-13 12:24:00 +02:00
Paul Fultz II
45de9a7d08
Refactor: Use getEndOfExprScope instead of getEndOfVarScope () 2022-02-24 06:50:34 +01:00
Oliver Stöneberg
6e57cc4323
small utils.h cleanup () 2022-02-11 19:44:08 +01:00
Daniel Marjamäki
3989408738 Update copyright year 2022-02-05 11:45:17 +01:00
Oliver Stöneberg
171da2e6f9
avoid dependency on transitive includes - based on include-what-you-use () 2022-01-27 19:03:20 +01:00
Paul Fultz II
7bf0ca8d00
Fix 10672: crash: CheckAutoVariables () 2022-01-01 00:14:36 +01:00
Rikard Falkeborn
8537331ad6
AutovarDeallocation: Fix grammar in error message () 2021-12-23 20:09:55 +01:00
Rikard Falkeborn
e7b6920cf4
Fix : FP invalid dealloc of function array argument ()
Do not warn for array arguments that are free'd, since they decay to
pointers.
2021-12-09 07:16:40 +01:00
Rikard Falkeborn
1a50146745
autovarInvalidDeallocation: Fix fp with impossible value ()
daca reports new false positives after db4f94fdfea6 on the form:

	void f() {
	    char *ptr = malloc(10);
	    char *empty_str = "";
	    if (ptr == NULL)
	        ptr = empty_str;
	    if (ptr != empty_str)
	        free(ptr);
	}

Add a check that the value is not impossible to avoid this.
2021-12-05 15:47:21 +01:00
Rikard Falkeborn
db4f94fdfe
Fix : Dealloc string literal () 2021-11-30 07:31:28 +01:00
Paul Fultz II
57f5b19b34
Fix 7812: False negative: return pointer of local variable ()
* Fix 7812: False negative: return pointer of local variable

* Format

* Add test case for 3029

* Format
2021-11-28 15:25:21 +01:00
Daniel Marjamäki
f701a9361d chmod; Use 644 for source files 2021-11-17 08:25:25 +01:00
Paul Fultz II
c057dcce0f
Fix 10592: False positive: returnDanglingLifetime () 2021-11-11 08:00:05 +01:00
Paul Fultz II
b835744a81
Fix 10585: FP danglingTemporaryLifetime recent regression ()
Fix 10585: FP danglingTemporaryLifetime recent regression
2021-11-04 09:24:24 +01:00
Paul Fultz II
d3f0aa5b34
Fix 10033: false negative: danglingTemporaryLifetime with usage of reference from nested object not detected () 2021-11-01 19:23:15 +01:00
Paul Fultz II
7d7584b456
Fix 10575: Improve check; lifetime, struct member points to local data () 2021-11-01 19:22:21 +01:00
Paul Fultz II
8668d445c7
Add support for string_view () 2021-10-05 08:28:19 +02:00
Paul Fultz II
95c872b1ec
Fix todo test for returning a dangling reference () 2021-06-04 17:15:39 +02:00
Ken-Patrick Lehrmann
9aa131a12e
Remove unnecessary null check ()
Spotted by coverity (as the condition in the `if` part `isArrayVar(tok)`
dereferences tok.
Tok can't be null here, because the condition in the `else if`on line
268 checks that there is a `%var%` following, and
`tok = Token::findmatch(tok->next(), "%var%");` simply gets this `%var%`
token.
2021-04-28 18:05:32 +02:00
Paul Fultz II
db5f00a16a
Fix issue 10214: FP: danglingTempReference doesn't account for reference lifetime extension ()
* Fix issue 10214: FP: danglingTempReference doesn't account for reference lifetime extension
2021-04-19 14:20:29 +02:00
Paul Fultz II
563c9dd9cc
Fix issue 10208: FP: knownConditionTrueFalse in for loop with function that assigns by ref () 2021-04-18 21:42:27 +02:00
Oliver Stöneberg
6397e29f84
cleaned up includes based on include-what-you-use () 2021-04-03 21:30:50 +02:00
Daniel Marjamäki
42437277dc Update Copyright year 2021-03-21 20:58:32 +01:00
PKEuS
141d2ac215 Refactorization: Improved internal implementation of severity and certainty levels
Backported from LCppC.
2021-02-24 22:00:06 +01:00