Paul Fultz II
c0af66bb52
Fix 10552: Internal error with unusedFunction ( #3600 )
2021-12-05 15:46:17 +01:00
Paul Fultz II
a03e731930
Track lifetimes of lambdas that capture the 'this' variable ( #3594 )
2021-12-04 17:00:55 +01:00
Paul Fultz II
29dbded4af
Fix 10615: Crash in Token::linkAt ( #3599 )
2021-12-04 12:57:59 +01:00
Paul Fultz II
bc31419da0
Fix 9301: Syntax error when specializing template variable array ( #3601 )
2021-12-04 12:56:25 +01:00
Paul Fultz II
8dcea26c10
Find iterator mismatch when using temporary containers ( #3579 )
2021-12-04 12:55:56 +01:00
Paul Fultz II
c14920218c
Fix 10624: FP knownConditionTrueFalse with pointer member and dynamic cast ( #3598 )
2021-12-04 08:54:24 +01:00
Paul Fultz II
a0d633945e
Fix 10621: FP arrayIndexOutOfBoundsCond with multiple index checks ( #3597 )
...
* Fix 10621: FP arrayIndexOutOfBoundsCond with multiple index checks
* Format
2021-12-04 08:54:04 +01:00
chrchr-github
4a1a1534df
Fix #10632 (FN charset in format string) ( #3590 )
...
* Fix #10632
* Typo
2021-12-01 09:51:48 +01:00
Rikard Falkeborn
db4f94fdfe
Fix #7341 : Dealloc string literal ( #3586 )
2021-11-30 07:31:28 +01:00
chrchr-github
d565cde815
Fix and tests for #7622 , #10381 , #10382 ( #3588 )
...
* Add test cases for #10381 , #10382
* Fix #7622
* Format
2021-11-29 22:51:35 +01:00
Daniel Marjamäki
396a69a630
Clang: do not silently abort from checks
2021-11-29 20:09:39 +01:00
Paul Fultz II
853a1f6d54
Fix 10631: FP, Regression: error: Return value of allocation function 'makeThing' is not stored. ( #3585 )
2021-11-29 07:06:43 +01:00
Daniel Marjamäki
c26e205e29
clang import: fixed problem with nameless struct
2021-11-29 07:00:18 +01:00
Paul Fultz II
57f5b19b34
Fix 7812: False negative: return pointer of local variable ( #3583 )
...
* Fix 7812: False negative: return pointer of local variable
* Format
* Add test case for 3029
* Format
2021-11-28 15:25:21 +01:00
chrchr-github
cea649761c
Fix FN buffer overrun with array of pointers ( #3582 )
2021-11-27 12:15:36 +01:00
Paul Fultz II
1e327dfbd3
Fix 9836: False negative: No invalidContainer when using vector of vectors ( #3580 )
...
* Fix 9836: False negative: No invalidContainer when using vector of vectors
* Format
2021-11-26 13:38:40 +01:00
Paul Fultz II
143ddf2758
Fix 10595: FN: std::vector() reserve() ( #3581 )
...
* Fix 10595: FN: std::vector() reserve()
* Format
2021-11-26 09:50:02 +01:00
Paul Fultz II
12e731ad49
Fix 10605: FP containerOutOfBounds with empty() check ( #3572 )
2021-11-25 22:34:00 +01:00
Paul Fultz II
33ad30f4da
Fix 10617, 9824: conditions in expanded macro ( #3578 )
2021-11-25 18:40:15 +01:00
Rikard Falkeborn
085d25f1b1
SymbolDatabase: Fix valuetype with constexpr and auto ( #3577 )
2021-11-24 16:51:40 +01:00
Leon De Andrade
5b52f4946a
Implement support for passing multiple file filters ( #3479 )
2021-11-23 22:51:45 +01:00
Paul Fultz II
b80e24231b
Fix 10604: FP mismatchingContainerIterator with container member ( #3575 )
2021-11-23 22:50:32 +01:00
Daniel Marjamäki
c7ef602cd6
Fixed #9759 (False positive: constParameter on parameter used by non-const call via pointer to member function)
2021-11-21 20:03:38 +01:00
Daniel Marjamäki
10109a5ef7
dumpfile: remove redundant Variable attributes isArgument and isLocal. Add isVolatile.
2021-11-19 17:21:27 +01:00
Daniel Marjamäki
f701a9361d
chmod; Use 644 for source files
2021-11-17 08:25:25 +01:00
Daniel Marjamäki
8b5865055a
SymbolDatabase: Fix Variable pointer property for 'std::string x(*p)'
2021-11-17 08:22:49 +01:00
Paul Fultz II
8bff45281d
Fix 10599: regression- segmentation fault on template code ( #3565 )
2021-11-16 06:49:13 +01:00
Stefan van Kessel
5770110377
Fixed #10432 (Only the first default argument was copied from the forward declaration;) ( #3530 )
...
Co-authored-by: Stefan van Kessel <stefan.vankessel@muehlbauer.de>
2021-11-15 20:37:46 +01:00
chrchr-github
2bf7294d5b
Fix member shadowing ( #3563 )
2021-11-15 20:37:08 +01:00
chrchr-github
9c31e0ce54
Fix #10393 FP returnDanglingLifetime ( #3562 )
2021-11-15 20:36:38 +01:00
Paul Fultz II
a0d3c2c719
Handle for loop conditions in afterCondition ( #3561 )
2021-11-14 18:30:36 +01:00
Paul Fultz II
112363c9d1
Fix 10590: container access out of bounds not found ( #3560 )
...
* Refactor container bounds check
* Use symbolic values
* Add test case
* Format
2021-11-13 07:45:29 +01:00
Paul Fultz II
13f5b560ce
Fix 10555: FP knownConditionTrueFalse with non-const function in base class ( #3559 )
2021-11-12 20:05:43 +01:00
Paul Fultz II
771188238c
Fix 10574: ValueFlow: conditional values in constructor initializer list ( #3556 )
2021-11-11 08:01:10 +01:00
Paul Fultz II
c057dcce0f
Fix 10592: False positive: returnDanglingLifetime ( #3557 )
2021-11-11 08:00:05 +01:00
nomick
5865b05703
fix false positive of virtual function call ( #3553 )
2021-11-11 07:53:30 +01:00
chrchr-github
629f883408
Fix #10097 : autovarInvalidDeallocation with pointer to std::array ( #3529 )
2021-11-08 20:31:16 +01:00
Paul Fultz II
662ada6930
Refactor: Use a template instead of std::function in forward analyzer to help improve debugging ( #3551 )
2021-11-08 07:46:52 +01:00
Paul Fultz II
035c70c441
Fix 10578: Value not impossible after check ( #3549 )
2021-11-07 18:19:56 +01:00
Paul Fultz II
a50596df72
Fix 10582: ValueFlow; wrong known value ( #3550 )
2021-11-07 06:51:51 +01:00
Paul Fultz II
1791457227
Fix 9953: false positive: uninitvar ( #3548 )
2021-11-07 06:51:19 +01:00
Paul Fultz II
6338c2396c
Fix 10589: False positive: danglingLifetime for moved unique ptr ( #3547 )
2021-11-06 19:08:19 +01:00
KenPatrickLehrmann
f5f600bafc
Don't simplify template for class names in declarations ( #3505 )
...
* Don't simplify template for class names in declarations
Without the patch, the test would give:
```
Expected:
namespace foo { class Bar ; } class Baz ; class C : Baz { } ;
Actual:
namespace foo { class Bar ; } class Baz ; class foo :: Bar : Baz { } ;
```
* Use valid code in test case
2021-11-06 19:07:45 +01:00
Paul Fultz II
ffc2a9d8e2
Fix 9735 for valueFlowUninit ( #3538 )
2021-11-06 19:06:07 +01:00
Daniel Marjamäki
9d1ec2638d
fix clang-tidy warning, different argument name for declaration and implementation
2021-11-05 21:07:18 +01:00
Daniel Marjamäki
ed4d2c21e6
Load cppcheck.cfg in FILESDIR if that is specified
2021-11-05 20:37:48 +01:00
Paul Fultz II
b835744a81
Fix 10585: FP danglingTemporaryLifetime recent regression ( #3544 )
...
Fix 10585: FP danglingTemporaryLifetime recent regression
2021-11-04 09:24:24 +01:00
Daniel Marjamäki
0f259a5dc6
Fixed #10222 (regression: arrayIndexOutOfBounds)
2021-11-03 20:16:44 +01:00
Paul Fultz II
d3f0aa5b34
Fix 10033: false negative: danglingTemporaryLifetime with usage of reference from nested object not detected ( #3542 )
2021-11-01 19:23:15 +01:00
Paul Fultz II
7d7584b456
Fix 10575: Improve check; lifetime, struct member points to local data ( #3541 )
2021-11-01 19:22:21 +01:00
Paul Fultz II
be14866095
Run valueFlowSubfunction in reverse order of functions ( #3540 )
2021-11-01 19:21:03 +01:00
Paul Fultz II
04ecf53a07
Use static array to store iterator infer models instead of constructing a vector everytime ( #3539 )
2021-11-01 19:18:18 +01:00
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
Paul Fultz II
2ee880752f
Fix 10410: FP nullPointerRedundantCheck on if (a || b ) followed by if ( b ) ( #3427 )
2021-08-29 15:39:41 +02:00
Daniel Marjamäki
06249c08f3
argumentSize: Clarify error message
2021-08-29 15:38:58 +02:00
Daniel Marjamäki
0d31486264
Fixed #10403 (Wrong AST for destructor call)
2021-08-28 22:11:30 +02:00
Paul Fultz II
c0765c451d
Fix 10139: AST broken; std::enable_if_t<> ( #3424 )
2021-08-28 09:28:56 +02:00
Paul Fultz II
4566e0e439
Fix 10148: False positive: knownConditionTrueFalse in for loop due to &= ( #3425 )
2021-08-28 09:28:29 +02:00
Daniel Marjamäki
6541efdb9a
fix selfcheck warning
2021-08-27 22:33:03 +02:00
Daniel Marjamäki
a55b0c332a
Fixed #10095 (False positive: unreadVariable)
2021-08-27 17:37:42 +02:00
Paul Fultz II
740becbddf
Fix 10348: FP knownConditionTrueFalse with condition variable in do ... while loop ( #3422 )
2021-08-27 05:46:57 +02:00
Paul Fultz II
712ff1c073
Fix 10436: hang: valueFlowSubFunction 'ispunct(c)..' ( #3423 )
2021-08-27 05:46:33 +02:00
chrchr-github
d9b6940070
Cleanup: unnecessary includes, fix include order, fix unreferenced va… ( #3418 )
2021-08-26 19:36:31 +02:00
Daniel Marjamäki
f31fbba54a
Token::typeDecl: Fix endless recursion for code:
...
void f()
{
auto val = val;
}
I did not manage to pinpoint a good location to put a unit test. However this will be tested when daca@home runs the package gcc-avr.
2021-08-26 19:03:35 +02:00
Paul Fultz II
1cd9d0479d
Fix 10433: assertion failure in ValueFlow (Interval::fromValues) ( #3419 )
2021-08-26 07:46:40 +02:00
Paul Fultz II
8aa37218c2
Fix 10400: FP nullPointer - for loop condition ( #3417 )
2021-08-25 20:33:41 +02:00
Daniel Marjamäki
11916171fe
Fix crash in programmemory, crash found in daca@home package system-root
2021-08-25 06:56:19 +02:00
Paul Fultz II
f7ddd7a35d
Fix 10430: FP knownConditionTrueFalse with bool from unsigned char ( #3416 )
2021-08-25 04:51:54 +02:00
Paul Fultz II
8ddc5764f8
Fix 10425: False positive: returnDanglingLifetime when taking address of captured variable ( #3415 )
2021-08-25 04:06:03 +02:00
Daniel Marjamäki
37ef29889b
Fix 10424: ExpressionAnalyzer assertion failure in librevisa
2021-08-24 16:06:51 +02:00
Paul Fultz II
524db1c756
Fix 10420: assertion error when analysing juce ( #3413 )
2021-08-23 11:12:42 +02:00
Paul Fultz II
865163b2ba
Add library configurations for free functions like std::size, std::empty, etc ( #3410 )
2021-08-23 09:03:48 +02:00
Daniel Marjamäki
165d48c846
fix gcc compiler warnings
2021-08-22 18:06:54 +02:00
Daniel Marjamäki
db57efa486
CheckBufferOverrun: Reimplement CheckBufferOverrun::argumentSize check
2021-08-22 16:37:41 +02:00
chrchr-github
ee4d90b4fa
Refactor: fix member shadowing, return by const ref ( #3407 )
2021-08-21 22:00:45 +02:00
Paul Fultz II
a0c37ceba2
Fix FP: Set correct bounds for interval ( #3411 )
2021-08-21 21:17:05 +02:00
Paul Fultz II
d30f42e0da
Fix FP when calling a function in a condition ( #3412 )
2021-08-21 18:52:11 +02:00
Daniel Marjamäki
ca50dea97d
Fix in Tokenizer::simplifyUsing for non-scopes
2021-08-21 10:10:40 +02:00
Daniel Marjamäki
d73ab0ad96
Tokenizer::simplifyUsing; Fixed bug when enum class is used
2021-08-20 16:08:01 +02:00
Paul Fultz II
e62cdbb664
Deduce symbolic values from conditions ( #3406 )
2021-08-19 22:01:55 +02:00
Paul Fultz II
e0de48bb1d
Fix 7524: ValueFlow: false path for 'x<3' ( #3393 )
2021-08-16 09:19:07 +02:00
Daniel Marjamäki
6a565f9e2f
cleanup unused function
2021-08-15 11:01:14 +02:00
Paul Fultz II
be978b35cf
Add more ValueFlow info in the xml dumps ( #3402 )
2021-08-15 08:02:31 +02:00
Daniel Marjamäki
83270a6c52
Fixed #10376 (Cppcheck does not add some function arguments to the dump file)
2021-08-15 07:48:01 +02:00
Paul Fultz II
f81ddd2daa
Fix 10408: FP nullPointer on 'return x.release()' ( #3404 )
2021-08-15 07:43:50 +02:00
Paul Fultz II
422e411b6c
Fix 9444: Syntax error on valid C++14 code ( #3403 )
2021-08-15 07:43:02 +02:00
Paul Fultz II
6d65f86871
Fix 9245: Synax error on valid C++14 code: AST broken, binary operator '=' doesn't have two operands. ( #3400 )
2021-08-14 22:50:58 +02:00
Paul Fultz II
c92dab1329
Fix 10406: FP danglingLifetime with pointer-to-pointer ( #3401 )
2021-08-14 21:37:17 +02:00
Paul Fultz II
818fd248e1
Simplify template keyword bracket ( #3399 )
2021-08-14 21:16:27 +02:00
Paul Fultz II
fdaeaacc40
Symboldatabase: Improve valuetypes for containers, iterators, and smart pointers ( #3398 )
2021-08-14 19:00:58 +02:00
Paul Fultz II
f946bbc249
Only add exprids to expression and not variable declarations ( #3397 )
2021-08-14 06:49:12 +02:00
Paul Fultz II
b9ac48c90a
Fix 10409: FP 'Condition 's.size()<3' is always false' ( #3396 )
2021-08-14 06:48:38 +02:00
Paul Fultz II
2a3657154b
Dont require __main__ for an addon ( #3363 )
2021-08-12 20:17:51 +02:00
Paul Fultz II
69eaa9dfd9
Refactor: ConditionHandler cleanup ( #3394 )
2021-08-11 08:37:37 +02:00
chrchr-github
e626e3065d
Fix MSVC warning: member shadowing ( #3392 )
2021-08-10 22:34:13 +02:00
Daniel Marjamäki
e95395e5f0
Fixed #10397 (FP constParameter - implementing an interface)
2021-08-10 15:37:59 +02:00
Daniel Marjamäki
c2305b1da7
Fixed #10396 (FP missingReturn on void operator=())
2021-08-10 09:55:16 +02:00
Daniel Marjamäki
d0b6079a83
Fixed #10372 (Confusing message for compareValueOutOfTypeRangeError)
2021-08-10 09:38:28 +02:00
Daniel Marjamäki
0093452bed
SymbolDatabase; Better handling of namespace that is defined in several scopes
2021-08-10 07:00:11 +02:00
Paul Fultz II
0f897acecd
Fix FP in solveExpr when using symbolic values ( #3391 )
2021-08-09 20:41:10 +02:00
Daniel Marjamäki
d82df7cc55
Fix self-check warning, condition is always true
2021-08-09 13:17:48 +02:00
Daniel Marjamäki
0cb6603055
SymbolDatabase; Use range based for loops
2021-08-09 12:43:21 +02:00
Alfi Maulana
aab5b39e2d
feat: add support for .ipp and .ixx extensions ( #3383 )
2021-08-09 10:46:56 +02:00
Daniel Marjamäki
94e8a69a9b
Fix self-check warning
2021-08-09 09:55:24 +02:00
Paul Fultz II
a218ea3b23
Fix 10404: FP knownConditionTrueFalse after subtraction ( #3390 )
2021-08-09 07:45:41 +02:00
Daniel Marjamäki
5f81b03df1
valueflow; Remove unused function, fixing gcc warning
2021-08-08 21:25:47 +02:00
Daniel Marjamäki
fa398a6ba1
valueflow: remove not needed INDENT-OFF and INDENT-ON
2021-08-08 21:22:42 +02:00
Paul Fultz II
7f358b2bed
Format with uncrustify ( #3388 )
2021-08-07 20:51:18 +02:00
Daniel Marjamäki
b729c4a126
ctu: fixes for xml output
2021-08-06 07:57:18 +02:00
Daniel Marjamäki
27a4df06d2
Revert "SymbolDatabase; First fix to handle when a namespace have many scopes"
...
This reverts commit e6cc7201b0
.
2021-08-04 22:30:39 +02:00
Daniel Marjamäki
ad478914f7
cppcheck build dir; Fix several xml syntax errors in the analyzer info files
2021-08-04 21:39:24 +02:00
Paul Fultz II
735f716603
Fix 10394 and 10395: FP knownConditionTrueFalse: loop variable ( #3381 )
2021-08-04 21:07:55 +02:00
Paul Fultz II
8b8ae55490
Fix 10129: false negative: knownConditionTrueFalse ( #3382 )
...
* Add symbolic matching
* Check for truncated values
* Dont propagate uninit values
* Update errorpath test
* Add test case for 10129
* Add test case for FP
* Remove symbolic values that are the same as the token
* Fix test messages
* Fix cppcheck issue
* Format
2021-08-04 21:07:31 +02:00
Daniel Marjamäki
e6cc7201b0
SymbolDatabase; First fix to handle when a namespace have many scopes
2021-08-04 20:36:43 +02:00
Paul Fultz II
4626f9ed76
Fix FP when returning a pointer to a container ( #3379 )
2021-08-04 08:16:31 +02:00
chrchr-github
28c8b00e5c
Minor: fix MSVC shadow warning ( #3376 )
2021-08-04 08:16:02 +02:00
Paul Fultz II
6736ac7e3a
Revert "Formatted the code [ci skip]" ( #3380 )
...
This reverts commit 7a6d7f7c2d
.
2021-08-03 17:53:30 +02:00
orbitcowboy
7a6d7f7c2d
Formatted the code [ci skip]
2021-08-03 06:33:54 +02:00
Paul Fultz II
08041e3a0b
Refactor: Assert an expression has an id and fix assertion failures ( #3377 )
...
* Fix 10390: FP: knownConditionTrueFalse
* Assert expression has an ID
* Fix assertion errors
* Format
2021-08-03 06:31:52 +02:00
Paul Fultz II
7be9b217e6
Fix 7843 and 7844: ValueFlow for abs ( #3373 )
...
* Refactor: Use valueFlowForward to forward values in condition expression
* Formattting
* Make known when using bools as well
* Set abs function as always positive
* Add test
* Add valueFlowSymbolicAbs
* Set impossible values
* Fix test case
* Fix error messages
* Merge
2021-08-03 06:31:28 +02:00
Paul Fultz II
3d19b33c3e
Fix 9948 and 10234: false negative: knownConditionTrueFalse and stlOutOfBounds ( #3372 )
2021-08-02 10:51:34 +02:00
Paul Fultz II
61ceff39f5
Fix 10390: FP: knownConditionTrueFalse ( #3374 )
2021-08-02 10:49:39 +02:00
Daniel Marjamäki
0f0d042ee2
Refactoring; Use range for in SymbolDatabase
2021-08-01 21:51:37 +02:00
Daniel Marjamäki
1ec7397c21
astyle formatting
...
[ci skip]
2021-08-01 14:05:30 +02:00
Robert Reif
94dc6c2c3f
fix #10332 (cppcheck crashes) ( #3371 )
2021-08-01 10:31:36 +02:00
Paul Fultz II
2f6a6e4b45
Refactor: Use valueFlowForward to forward values in condition expression ( #3369 )
2021-08-01 10:13:14 +02:00
Paul Fultz II
7d9fdf582b
Fix 10121: False positive: Condition 'ab->a!=123' is always false when modifying an alias ( #3293 )
2021-08-01 10:10:11 +02:00
Paul Fultz II
6767b57d4c
Fix FP for symbolic values when the expression is not const ( #3370 )
2021-07-31 14:19:37 +02:00
Paul Fultz II
3a7ba3cd29
Add symbolic values to ValueFlow ( #3367 )
2021-07-30 21:29:35 +02:00
Paul Fultz II
6a81b4c17c
Fix 10264: FP invalidContainer when address of container is passed inside struct ( #3368 )
2021-07-30 15:52:00 +02:00
Paul Fultz II
737b6199ba
Refactor: Allow parse to return multiple values for a condition ( #3361 )
2021-07-26 22:23:19 +02:00
Paul Fultz II
c34691ff56
Fix 10354: FP knownConditionTrueFalse after bitwise and/xor ( #3360 )
2021-07-26 22:22:50 +02:00
Paul Fultz II
0d3afbb954
Evaluate casts in programmemory ( #3359 )
2021-07-26 22:22:23 +02:00
Paul Fultz II
14802b932e
Fix 10362: ValueFlow: global variable might be modified by function call ( #3358 )
2021-07-26 22:21:56 +02:00
orbitcowboy
c14bb9cd2e
Running astyle [ci skip]
2021-07-26 16:32:00 +02:00
Paul Fultz II
84ea0a2295
Refactor: Remove extra analysis of container sizes in conditions ( #3357 )
2021-07-25 18:14:51 +02:00
Paul Fultz II
5be3f700bb
Fix 10373: ValueFlow: container in struct assumed empty ( #3355 )
2021-07-25 18:13:55 +02:00
Paul Fultz II
8e416a7255
Fix issue 10379: FP knownConditionTrueFalse with mod operator ( #3354 )
2021-07-25 18:13:14 +02:00
Paul Fultz II
f9516cf1c6
Fix issue 10378: FP derefInvalidIteratorRedundantCheck ( #3353 )
2021-07-24 22:44:18 +02:00
Georgiy Komarov
48031ffb3b
lib: Fix clang -Wrange-loop-construct warning ( #3347 )
2021-07-22 18:53:44 +02:00
Daniel Marjamäki
74ab8f1a48
misra; implemented rule 20.8
2021-07-22 08:46:28 +02:00
Paul Fultz II
00eb71fd49
Remove constexpr -> const simplification ( #3346 )
2021-07-22 07:22:26 +02:00
Daniel Marjamäki
b1547a387e
astyle formatting
...
[ci skip]
2021-07-21 20:13:38 +02:00
Paul Fultz II
41c94b656a
Fix FP const pointer with class variable and add more tests ( #3345 )
2021-07-21 07:36:13 +02:00
Paul Fultz II
8efe1d4ab4
Find reference to dangling unique ptr ( #3344 )
2021-07-20 21:30:27 +02:00
Daniel Marjamäki
524e4b8c96
CI; Fix self check warning, pointer can be const
2021-07-20 12:21:01 +02:00
Daniel Marjamäki
dd34d1c123
CI; Fix Cppcheck self-check, pointer can be const
2021-07-20 11:21:47 +02:00
Daniel Marjamäki
fb5ab5e439
constPointer; Improved checking dereferenced pointer is used in calculation/comparison
2021-07-20 10:38:38 +02:00
Daniel Marjamäki
4d23c02320
constPointer; Improved checking when pointer is not dereferenced
2021-07-20 10:28:35 +02:00
Daniel Marjamäki
d1fe34e167
misra; implement rule 8.10
2021-07-18 21:18:07 +02:00
Daniel Marjamäki
f6efd8c6be
CI; Fix self check false positive
2021-07-18 20:00:20 +02:00