Commit Graph

11277 Commits

Author SHA1 Message Date
chrchr-github bb327be8e8
Fix #10591 FP unusedStructMember with value-initialized struct and typedef (#3643) 2021-12-18 22:55:52 +01:00
chrchr-github 8df25ec4e9
Fix #8266 identicalConditionAfterEarlyExit variable modified in if-clause (#3610) 2021-12-18 22:52:54 +01:00
Paul Fultz II 332f4c205a
Fix 9772: FP uninitvar: in cppcheck 2.1 (#3638) 2021-12-17 21:51:47 +01:00
Paul Fultz II e7db974606
Fix 10621: FP arrayIndexOutOfBoundsCond with multiple index checks (#3640) 2021-12-17 21:48:29 +01:00
Paul Fultz II 4fb43a3f56
Fix 10643: FP: (error) Array 'buf[64]' accessed at index -1, which is out of bounds. (#3639)
* Fix 10643: FP: (error) Array 'buf[64]' accessed at index -1, which is out of bounds.

* Format
2021-12-17 10:05:57 +01:00
Paul Fultz II 398fa28021
Fix 10657: False positive; ValueFlow - invalid iterator (#3636) 2021-12-16 22:34:51 +01:00
Paul Fultz II ac4f4258a0
Fix 10651: Crash on static template method (#3633) 2021-12-16 22:32:44 +01:00
Oliver Stöneberg ba402f3e50
cleaned up includes based on include-what-you-use (#3627) 2021-12-15 19:47:27 +01:00
Paul Fultz II 5414814238
Fix 10649: False positive: wrong known value after reassignment (#3631) 2021-12-15 19:37:25 +01:00
Paul Fultz II 16110b6157
Fix 10339: Lambda in leads to analysis fail (#3629) 2021-12-15 19:34:18 +01:00
Paul Fultz II 5f73af0d0e
Fix 10625: False positive: known value below do while (#3623) 2021-12-15 19:32:14 +01:00
Paul Fultz II 6681576707
Fix 10642: False positive: Possible dereference of an invalid iterator: v.begin()+v.size()-1 (#3630) 2021-12-15 19:31:28 +01:00
chrchr-github 532477cdb2
Fix #9549 FP knownConditionTrueFalse (bitshift) (#3616) 2021-12-14 07:30:57 +01:00
Paul Fultz II cb2738a60c
Fix 10645: FP knownEmptyContainer after conditional return (#3620) 2021-12-14 07:22:57 +01:00
Daniel Marjamäki 77434d093e SymbolDatabase: Do not set wrong type for std::map etc items in range for loop 2021-12-11 15:16:54 +01:00
chrchr-github f64097465f
Fix #9342 FP oppositeExpression - negated value is not opposite for bitwise logical operators (#3615) 2021-12-10 18:06:45 +01:00
Rikard Falkeborn e7b6920cf4
Fix #10600: FP invalid dealloc of function array argument (#3613)
Do not warn for array arguments that are free'd, since they decay to
pointers.
2021-12-09 07:16:40 +01:00
orbitcowboy bca27bf7d2 Ticket #6098, added regression test 2021-12-07 08:50:29 +01:00
chrchr-github 33c55f77a8
Fix #9570 (#3608) 2021-12-07 07:44:07 +01:00
Paul Fultz II 3874c546cc
Fix 10641: FP invalidLifetime with compiler-generated constructor (#3609) 2021-12-07 07:43:25 +01:00
Paul Fultz II 0be6e27231
Fix 10640: FN nullPointerRedundantCheck (#3607)
* Fix 10640: FN nullPointerRedundantCheck

* Format
2021-12-06 20:06:48 +01:00
Paul Fultz II d2926bfa96
ValueFlow: Propagate const variables more aggressively (#3606)
* ValueFlow: Propagate const variables more aggressively

* Format

* Fix incorrect addition
2021-12-06 09:16:42 +01:00
orbitcowboy 97f84a368d Ticket #8648: Added regression test. 2021-12-05 17:44:57 +01:00
Rikard Falkeborn 1a50146745
autovarInvalidDeallocation: Fix fp with impossible value (#3604)
daca reports new false positives after db4f94fdfe 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
Paul Fultz II f64bcac004
Fix 10429: Regression: invalidIterator (#3603) 2021-12-05 15:46:52 +01:00
Paul Fultz II c0af66bb52
Fix 10552: Internal error with unusedFunction (#3600) 2021-12-05 15:46:17 +01:00
Paul Fultz II 35f14962fc
Regression test for 9523: Syntax Error: AST broken, 'if' doesn't have two operands. (#3602) 2021-12-04 17:03:02 +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 b6b2cf8283
Add tests, todo for #9291, #9949 (#3593) 2021-12-02 17:28:31 +01:00
chrchr-github 6f2000a99b
Add test for #9126 (#3592) 2021-12-01 18:24:25 +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
chrchr-github b4a60305f9
Add todo for #9827 (#3589) 2021-11-29 19:12:07 +01:00
chrchr-github ca311ebcdf
ASSERT() on calls to Tokenizer::tokenize() in test code (#3501) 2021-11-29 07:34: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
chrchr-github a6b8339990
Add test for #10607 (#3576)
* Add test for #10607

* Format
2021-11-24 14:42:19 +01:00
chrchr-github ed050659a3
Add test cases, todos for #9790, #10358, #10462 (#3564)
* Add test cases, todos

* Format

* Remove dupes

* Format
2021-11-23 23:07:15 +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
chrchr-github cdc34fe92f
Add test for #10025 (#3570) 2021-11-20 08:53:18 +01:00
chrchr-github b211139dbd
Add test for #10092 (#3571) 2021-11-20 08:52:51 +01:00
chrchr-github 194a1be2c6
Add test for #4792 (#3573) 2021-11-20 08:52:27 +01:00
chrchr-github 22eeeed17a
Add test for #6342 (#3569)
* Add test for #6342

* Format
2021-11-18 20:25:21 +01:00
chrchr-github 80578c3504
Add test for #10342 (#3567) 2021-11-17 19:29:21 +01:00
chrchr-github 51d0f128a5
Add test for #10126 (#3568) 2021-11-17 19:28:15 +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
chrchr-github 2998382c86
Add test for #10011 (#3566)
* Add test for #10011

* Format

* Format
2021-11-16 16:01:10 +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 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
chrchr-github 49d3e07b59
Add test case for #10137 (#3558) 2021-11-11 20:25:10 +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
chrchr-github 0d1d3b4ed0
Add regression test for #10458 (#3555) 2021-11-11 07:59:14 +01:00
nomick 5865b05703
fix false positive of virtual function call (#3553) 2021-11-11 07:53:30 +01:00
chrchr-github 77069d810c
Add test case (#3554) 2021-11-08 20:31:45 +01:00
chrchr-github 629f883408
Fix #10097: autovarInvalidDeallocation with pointer to std::array (#3529) 2021-11-08 20:31:16 +01:00
chrchr-github b4561229cb
Partial fix for #10358: set value for int s = int(4); (#3523) 2021-11-08 20:28:55 +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
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 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
orbitcowboy bd63882d80 testuninitvar: #9735 - Moved test to valueFlowUninit. 2021-10-31 07:14:00 +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
chrchr f363d8948b Fix test case 2021-10-30 19:04:50 +02:00
orbitcowboy 242acb6135 testuninitvar: Moved test into CTU section. 2021-10-30 17:07:52 +02:00
orbitcowboy be2ba0f772 Ticket #9735 - Added regression test 2021-10-30 16:31:59 +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
chrchr-github 728531aba1
Add test cases for ValueFlow issue with cast/switch (#3527) 2021-10-28 19:49:42 +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
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
Daniel Marjamäki 921f5c1818 Fixed #10547 (False positive: constVariable, buffer written by stream read) 2021-10-18 19:38:53 +02:00
orbitcowboy 21abf315b3 windows.cfg: Added a regression test for GetPrivateProfileString() as we had a FP in the past 8b6c14aa48 2021-10-17 11:05:19 +02:00
orbitcowboy 9c16f13651 Format 2021-10-16 00:31:55 +02:00
orbitcowboy d4a98dfaab Ticket #4716: Added a regression test 2021-10-15 22:50:29 +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
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
orbitcowboy f09b4139fe Ticket #8407: Added regression test 2021-10-12 09:42:18 +02:00
orbitcowboy c3af708a55 Ticket #8209: Added regression test 2021-10-12 08:25:08 +02:00
chrchr-github c4c12df372
Fix escape sequences in test cases (#3499) 2021-10-11 19:16: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
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
orbitcowboy 098c0c44fd Ticket #7884: added regression test 2021-10-08 23:14:16 +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
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 2ca2abdf0e
Remove duplicate uninit warnings (#3478) 2021-10-04 07:50:23 +02:00
Daniel Marjamäki eb50d19657 Uninitvar: Moved testcases for avoiding extra warnings from TestValueFlow to TestUninitVar 2021-10-03 22:15:35 +02:00
Daniel Marjamäki 08bc21199e Make ci happy 2021-10-03 22:01:13 +02:00
Daniel Marjamäki b3f9df968b Uninitvar: fixed 'make checkcfg' 2021-10-03 20:32:39 +02:00
Daniel Marjamäki 6a1b7f53ce Fixed CI 2021-10-03 18:47:21 +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
chrchr-github d87c599f1e
Add regression test for #10475 (#3468) 2021-09-27 19:57:41 +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