Paul Fultz II
df59b07ba1
Fix 10226: FN: knownConditionTrueFalse ( #3537 )
2021-10-31 14:51:07 +01:00
Daniel Marjamäki
3e6540c4b3
Fixed #10523 (FP: missingReturn with nested switch statements)
2021-10-31 14:48:29 +01:00
Paul Fultz II
8c9c46835a
Fix for 6597: false negative: uninitialized variable usage not detected (ValueFlow , multi variables) ( #3535 )
2021-10-30 22:13:58 +02:00
Daniel Marjamäki
3f7093004a
Fixed #10485 (FP unusedStructMember for array size)
2021-10-30 19:34:46 +02:00
Oliver Stöneberg
61a2b89034
streamlined message/error printing of CmdLineParser ( #3524 )
...
* cmdlineparser.cpp: removed message about deprecated --std=posix
* streamlined message/error printing of CmdLineParser
* test-helloworld.py: adjusted expected test result
2021-10-30 13:30:48 +02:00
Oliver Stöneberg
b4704ba065
use target-specific configuration instead of global ones in CMake ( #3534 )
2021-10-30 09:08:07 +02:00
Paul Fultz II
e998cd13ca
Partial fix for 10393: FP returnDanglingLifetime when constructing string from iterators [inconclusive] ( #3536 )
2021-10-30 09:06:36 +02:00
Paul Fultz II
e20ddd55d6
Propagate partially uninit variables in ValueFlow ( #3533 )
2021-10-30 07:43:37 +02:00
Daniel Marjamäki
b872639e31
fix klocwork warning; pointer is checked and then dereferenced. FN ticket: #10570
2021-10-29 19:23:01 +02:00
Daniel Marjamäki
87d1ba4c08
klocwork; fixed dereference before check. FN ticket: #10574
2021-10-28 17:20:45 +02:00
Daniel Marjamäki
d50e771a38
klocwork; fix uninitialized struct member. FN ticket: #10573
2021-10-28 17:09:33 +02:00
Daniel Marjamäki
d90ee9bfb9
klocwork fixes; remove redundant nullpointer checks
2021-10-28 08:58:16 +02:00
Daniel Marjamäki
eeaf2e5ff0
klocwork fixes; check that astSibling for comparison op does not return nullptr. remove check that pointer is non-null, the check should be redundant.
2021-10-28 08:55:08 +02:00
Oliver Stöneberg
ce029f3ea7
token.cpp: optimized Token::multiCompare() a bit - reduces average Ir from 71 to 63 when scanning test folder ( #3525 )
2021-10-26 08:57:54 +02:00
Daniel Marjamäki
1f01845efb
Fixed #10531 (FP unreadVariable with reference and *=)
2021-10-25 19:34:19 +02:00
Daniel Marjamäki
a838cb65fb
stlFindInsert: Take care of review comments
2021-10-25 19:13:06 +02:00
Daniel Marjamäki
d2d53e5043
Fixed #10558 (False positive; Searching before insertion in a loop is needed)
2021-10-24 19:13:42 +02:00
Oliver Stöneberg
cc1a18806c
use -Weverything for clang in CMake / fixed some warnings ( #3519 )
2021-10-24 11:06:48 +02:00
Paul Fultz II
48fc70b810
Dont stop analysis when an unrelated class variable is changed ( #3518 )
2021-10-23 14:47:10 +02:00
Paul Fultz II
ca83222bae
Add subexpression analyzer to set values for uninitialized members of struct ( #3517 )
...
* Add subexpression analyzer
* Fix errors
* Add tests
* Format
* Add more tests
* Run members first
* Format
* Uncomment todo assert
* Formatting
* Use simpleMatch
2021-10-21 14:44:48 +02:00
Paul Fultz II
257efb4019
Check if uninit value is used in library function ( #3516 )
2021-10-20 20:51:59 +02:00
Oliver Stöneberg
ba777b54d1
prevent uncaught exception in ThreadExecutor::handleRead() ( #3514 )
2021-10-20 20:41:42 +02:00
Daniel Marjamäki
921f5c1818
Fixed #10547 (False positive: constVariable, buffer written by stream read)
2021-10-18 19:38:53 +02:00
Daniel Marjamäki
0dfc5a6dcd
Fixed #10529 (Cleanup dump and ctu-info files)
2021-10-15 20:43:39 +02:00
chrchr-github
c88dceff95
Partial fix for #10358 : set value for int s{ 4 }; ( #3506 )
2021-10-15 20:05:42 +02:00
Paul Fultz II
84f102283b
Warn when modifying container from another function in a loop ( #3510 )
2021-10-15 11:54:29 +02:00
Daniel Marjamäki
fc8ab1b3af
Addon; Determine proper full path for 'executable' addon
2021-10-15 11:16:15 +02:00
Paul Fultz II
876702c4f2
Fix 10098: false negative: 'Reference to temporary returned.' not detected with class ( #3509 )
2021-10-15 10:59:40 +02:00
Paul Fultz II
7f04658585
Fix 10548: FP knownConditionTrueFalse with loop and operator++ ( #3511 )
2021-10-15 10:59:01 +02:00
Paul Fultz II
89515600e4
Fix 10538: FN: nullPointer (std::swap pointers) ( #3504 )
2021-10-15 10:58:16 +02:00
Paul Fultz II
130d1abbce
Fix 10210: FN: nullPointerRedundantCheck regression in member function ( #3512 )
2021-10-15 10:57:40 +02:00
Paul Fultz II
f1f86db0da
Fix 10544: FP knownConditionTrueFalse with loop after check ( #3508 )
2021-10-14 16:47:15 +02:00
Paul Fultz II
6b9ef1fc58
Propagate symbolic values for identity operators ( #3497 )
2021-10-14 16:46:36 +02:00
Daniel Marjamäki
0a5b7b2af5
Make it possible to configure default addons in a cppcheck.cfg file.
...
Example:
{
"addons":["cert"]
}
With that cppcheck.cfg file cppcheck will always run the "cert" addon. Explicit options such as --addon=cert will not be needed.
2021-10-13 20:02:48 +02:00
Oliver Stöneberg
99db1f3f22
fixed some compiler warnings ( #3502 )
2021-10-13 12:10:26 +02:00
Daniel Marjamäki
6a30eabf21
Addons; allow multiple locations in addon error message
2021-10-11 22:07:03 +02:00
Daniel Marjamäki
fd05fd7934
Allow compiled addons
2021-10-11 19:26:51 +02:00
Paul Fultz II
52e4bec50a
Fix 10537: FN: knownConditionTrueFalse (std::string::c_str() never returns nullptr) ( #3498 )
2021-10-11 19:16:12 +02:00
Paul Fultz II
5e9bc48d26
Evaluate symbolic values ( #3495 )
2021-10-11 19:10:37 +02:00
chrchr-github
474c3d3731
MSVC: add missing files to project ( #3500 )
2021-10-11 19:01:49 +02:00
Daniel Marjamäki
6bd5f79451
Revert "Fix 8629: false negative: (style) Condition '...' is always true ( #3492 )"
...
This reverts commit b9be38aaec
.
2021-10-10 21:21:21 +02:00
Paul Fultz II
b9be38aaec
Fix 8629: false negative: (style) Condition '...' is always true ( #3492 )
2021-10-09 16:20:38 +02:00
Paul Fultz II
bc90ae889d
Fix 10543: FP knownConditionTrueFalse with static variable ( #3491 )
2021-10-09 16:20:04 +02:00
Paul Fultz II
a1e0ef9b38
Refactor: Use interval analysis for symbolic values for inferCondtion ( #3488 )
2021-10-09 16:19:06 +02:00
Paul Fultz II
25eb0ab5bc
Find dangling pointers to unique_ptr ( #3486 )
2021-10-06 08:46:25 +02:00
Paul Fultz II
3cb252bd99
Fix 9873: False negative: null pointer when checking raw pointer ( #3485 )
2021-10-06 08:39:58 +02:00
chrchr-github
f3e1f0d41b
Fix #10238 : char* confused with char ( #3484 )
2021-10-05 18:04:48 +02:00
Paul Fultz II
9b6c7007d2
Fix 9870: False negative: null pointer after duplicate conditions ( #3481 )
2021-10-05 08:29:23 +02:00
Paul Fultz II
8668d445c7
Add support for string_view ( #3480 )
2021-10-05 08:28:19 +02:00
Paul Fultz II
71809044bd
Fix 10522: FP: derefInvalidIterator when using emplace with 1 argument ( #3482 )
2021-10-05 08:23:47 +02:00
Paul Fultz II
c7e13d0e0b
Forward container size values in subfunctions ( #3483 )
2021-10-05 08:22:19 +02:00
KenPatrickLehrmann
61cddabe74
Fix FP due to namespace scope ( #3475 )
2021-10-04 23:16:16 +02:00
chrchr-github
428144c53c
Fix #10513 : vector constructed from pointers ( #3473 )
2021-10-04 07:55:17 +02:00
Paul Fultz II
7621fee3d4
Refactor: Use ValueFlow::Value for ProgramMemory execute instead of integers ( #3477 )
2021-10-04 07:53:58 +02:00
Paul Fultz II
2ca2abdf0e
Remove duplicate uninit warnings ( #3478 )
2021-10-04 07:50:23 +02:00
Daniel Marjamäki
f3d9755e65
UninitVar: too many warnings (pointer dereference)
2021-10-03 18:12:29 +02:00
Daniel Marjamäki
9f2ddf1623
UninitVar: too many warnings (function/cast operand)
2021-10-03 14:47:57 +02:00
Paul Fultz II
fc6a791a74
Fix 9766: False positive; suspicious operator is written in declaration ( #3476 )
2021-10-03 09:59:51 +02:00
chrchr-github
609e20d9d8
ValueFlow: string can be constructed from init list ( #3459 )
2021-10-02 23:09:49 +02:00
Daniel Marjamäki
7684d7b98a
2.6 dev: set version
2021-10-02 13:15:12 +02:00
chrchr-github
0c16e346f1
Minor: add endsWith() template, empy() check ( #3472 )
2021-09-28 20:34:21 +02:00
Daniel Marjamäki
08f9de95e2
Update copyright year
2021-09-26 11:34:56 +02:00
Paul Fultz II
d1181ad8e2
Fix 10506: Hang: template alias (TemplateSimplfier) ( #3466 )
2021-09-25 11:56:39 +02:00
Paul Fultz II
5c3b69fe96
Fix 10496: crash: endless recursion (symbolDatabaseCreateExprId => isSameExpr => isSameExpr ...) ( #3467 )
2021-09-25 11:55:49 +02:00
Daniel Marjamäki
2ee920dc4e
Fixed #10495 (False positive: unreadVariable when assigning to reference returned by method)
2021-09-24 07:30:17 +02:00
Paul Fultz II
edd435d5f0
Fix 10491: Crash in unusedFunction on valid C++ code ( #3465 )
2021-09-22 13:03:46 +02:00
Paul Fultz II
255dc0484a
Fix 10331: wrong conditional value after assignment+return ( #3461 )
2021-09-21 19:25:41 +02:00
Paul Fultz II
c76e6345c4
Fix FPs in bitwiseOnBoolean ( #3455 )
2021-09-19 15:20:57 +02:00
Paul Fultz II
9e9a982c6c
Fix 10468: False positive; uninitialized variable. Loop is always executed at least once ( #3462 )
2021-09-18 22:23:05 +02:00
Daniel Marjamäki
6234e9ddda
Fixed #10483 (FP constParameter with array member and memcpy)
2021-09-15 21:25:16 +02:00
chrchr-github
05acc13582
Shadow variables, const, rename function ( #3456 )
2021-09-15 20:28:58 +02:00
Daniel Marjamäki
a9a093e7cc
Fixed #10367 (False positive; pointer out of bounds argv-1)
2021-09-15 08:29:10 +02:00
Daniel Marjamäki
29bbb4ce14
Fixed #9220 (False positive: Unused function check for template parameter)
2021-09-12 20:27:49 +02:00
Daniel Marjamäki
23d37e5e7b
Fix crash in daca@home
2021-09-12 19:41:35 +02:00
Daniel Marjamäki
b455f847ba
Fixed #10448 (FN compareValueOutOfTypeRangeError with int32_t)
2021-09-12 15:08:14 +02:00
Daniel Marjamäki
6f4ce486a2
Fix FP in constVariable
2021-09-11 20:25:46 +02:00
Paul Fultz II
9ece849d80
Fix 10467: FP mismatchingContainers with array of vectors ( #3453 )
2021-09-09 20:43:46 +02:00
Paul Fultz II
b0b3f7ec2d
Fix 10464: FP: knownConditionTrueFalse ( #3452 )
2021-09-09 07:49:56 +02:00
Daniel Marjamäki
47f5e5d145
Fixed #10461 (FP missingReturn with empty initializer list)
2021-09-06 21:20:19 +02:00
Paul Fultz II
d4174a31ba
Fix 10414: FP 'The address of local variable 'single_value' might be accessed at non-zero index.' (regression) ( #3447 )
2021-09-06 07:15:46 +02:00
Paul Fultz II
98e22f6162
Fix 10413: FP arrayIndexOutOfBoundsCond after check ( #3446 )
2021-09-06 07:15:24 +02:00
Daniel Marjamäki
045f21ee48
Fixed #10142 (FP uninitMemberVar with std::map)
2021-09-05 16:35:24 +02:00
Paul Fultz II
0335671b35
Fix 10450: regression, FP : Iterator 'iter' from different container 'l' are used together ( #3436 )
2021-09-05 07:35:33 +02:00
FabianWolff
cd5fa015c1
Fix incorrect warning with `%zi` in format string ( #3437 )
2021-09-05 07:34:22 +02:00
Paul Fultz II
ccb31d8510
Fix 10460: FP knownConditionTrueFalse 'fabs(x)<1/(double)16' is always false ( #3445 )
2021-09-05 07:10:58 +02:00
Paul Fultz II
928efe77fc
Fix 9765: FP: knownConditionTrueFalse handling of template function with ternary operator ( #3443 )
2021-09-04 19:55:36 +02:00
Paul Fultz II
28bc717cbe
Fix 10163: false positive: lifetime for r is not same as for seq 'for (auto& r: seq)' ( #3442 )
2021-09-04 19:53:14 +02:00
Paul Fultz II
82b725e540
Fix FP when using deferred locks ( #3441 )
2021-09-04 19:06:48 +02:00
Paul Fultz II
9eb5eadd35
Fix 9777: False Positive: Condition is always true with reset/release on unique_ptr ( #3440 )
2021-09-04 19:06:13 +02:00
Paul Fultz II
8a708e556c
Fix 10456: FP identicalConditionAfterEarlyExit with variable captured by reference ( #3439 )
2021-09-04 19:05:41 +02:00
Ken-Patrick Lehrmann
b3b3b6b2a1
Fix handling of namespace scope with several bodystarts ( #3438 )
...
Follow up to 0093452bed
.
Give the proper end to getVariableList, since it might not be bodyEnd.
Before that, getVariableList would add the same variables in several
unrelated scopes, and all kind of false positive would follow.
For instance, with the case I added in the unit-tests, I had:
```
../code.cpp:15:18: warning: The struct 'is_A' defines member variable with name 'foo' also defined in its parent struct 'is_A_impl'. [duplInheritedMember]
static const int foo = 8;
^
../code.cpp:15:18: note: Parent variable 'is_A_impl::foo'
static const int foo = 8;
^
../code.cpp:15:18: note: Derived variable 'is_A::foo'
static const int foo = 8;
^
../code.cpp:15:18: style: struct member 'has_A::foo' is never used. [unusedStructMember]
static const int foo = 8;
^
../code.cpp:15:18: style: struct member 'is_A::foo' is never used. [unusedStructMember]
static const int foo = 8;
^
```
2021-09-04 11:09:33 +02:00
Paul Fultz II
b788e41191
Fix 10438: FP knownConditionTrueFalse after return in a catch clause ( #3429 )
2021-09-03 23:07:08 +02:00
Daniel Marjamäki
dccebb98ea
Removed missingReturn inconclusive warnings, that was too noisy
2021-09-01 19:50:17 +02:00
Ken-Patrick Lehrmann
4296859c1a
Remove usage of std::vector and getArguments from getTokenArgumentFunction ( #3435 )
...
getTokenArgumentFunction can be called many many times, and the vector
is not needed, but it can become quite costly.
This patch replaces getArguments with a function simply returning the
position of the token, if it is found in the arguments (thus saving the
cost of std::vector).
2021-09-01 10:51:44 +02:00
Paul Fultz II
7ce17f076a
Fix 10318: iterator converted to type, wrong scope check ( #3433 )
2021-08-31 09:48:23 +02:00
Daniel Marjamäki
15eb53b403
Tokenizer: Add 'enum struct' pattern
2021-08-30 20:18:06 +02:00
Paul Fultz II
49df3d811a
Validate asserts in the AST to fix crash in 10442 ( #3428 )
2021-08-29 20:45:31 +02:00
Daniel Marjamäki
ccfd18b96d
Simplify Typedef: Fixed typedef simplification in expanded tokens
2021-08-29 19:14:53 +02:00
Daniel Marjamäki
19fea629c6
Fix FP in checkCompareValueOutOfTypeRange when sign is unknown
2021-08-29 16:03:56 +02:00
Paul Fultz II
92eb59981d
Fix 10435: False positive: containerOutOfBounds ( #3426 )
2021-08-29 15:40:10 +02:00