Paul Fultz II
f83b8dd385
Fix 11194: FN: knownConditionTrueFalse ( #4452 )
...
* Fix 11194: FN: knownConditionTrueFalse
* Format
2022-09-08 18:51:44 +02:00
Paul Fultz II
6543b429c5
Fix 11285: FN: zerodiv ( #4448 )
...
* Fix 11285: FN: zerodiv
* Format
2022-09-07 19:15:37 +02:00
Oliver Stöneberg
54771306c5
selfcheck : cleaned up some suppressions, fixed warnings and some cleanups ( #4436 )
...
* cleaned up triage.pro and pass all triage files to selfcheck
* CI-unixish.yml: factored out redundant selfcheck flags
* CI-unixish.yml: cleaned up selfcheck suppressions and fixed warnings
* added explicit `missingInclude` checks to selfcheck to work around current issues/limitations / fixed selfcheck includes / added some unit tests for `missingInclude`
* applied the selfcheck changes to the sanitizer jobs
* only fail TSAN CI build in case of TSAN error / updated sanitizer CI build TODOs
2022-09-06 23:11:39 +02:00
chrchr-github
6960332f8a
Fix #11294 FP arrayIndexOutOfBoundsCond with extra parentheses ( #4442 )
2022-09-06 21:21:06 +02:00
Paul Fultz II
2d37a77281
Fix 11296: FN: knownConditionTrueFalse ( a !=0 && b != 0 && a == 0) ( #4444 )
2022-09-06 07:31:48 +02:00
Oliver Stöneberg
1b4141cbe5
added more missing `sstream` includes ( #4384 )
2022-08-19 18:23:15 +02:00
chrchr-github
6a0c254d1f
Fix #9931 FP zerodiv (daca@home) ( #4379 )
...
* Fix #9931 FP zerodiv (daca@home)
* Format
* Parentheses
* clang-tidy
2022-08-18 20:38:36 +02:00
chrchr-github
15f8c71ec3
Fix #9946 FP: unassignedVariable when operator() is called subsequently ( #4303 )
2022-07-24 17:52:14 +02:00
Paul Fultz II
0b63e7273d
Fix 11162: FP: knownConditionTrueFalse ( #4254 )
...
* Fix 11162: FP: knownConditionTrueFalse
* Format
2022-07-09 00:57:25 +02:00
Paul Fultz II
9cecc8468e
Fix 10570: Improve check; condition then pointer dereference, different pointers ( #4216 )
...
* Try to use after assign in loop
* Update valueflow forward to handle init tokens
* Fix tests
* Make test TODO
* Format
* Add tests
* Format
* Fix ubsan error
* Use simpleMatch
2022-06-16 19:26:23 +02:00
Paul Fultz II
d4fb5652c0
Fix 10619: Valueflow: Library function in subfunction does not propagate all values ( #4209 )
2022-06-12 07:17:28 +02:00
Paul Fultz II
c9b85010f9
Fix 11096: FP knownConditionTrueFalse in do while loop ( #4192 )
...
* Check for loop
* Improve handling of exit values
* Add more checks to test
* Simplify
* Remove unnecessary test
* Fix typo
* Format
* Use simpleMatch
2022-06-10 20:42:02 +02:00
Paul Fultz II
72342de0da
Fix 11114: FP knownConditionTrueFalse across functions ( #4163 )
...
* Fix 11114: FP knownConditionTrueFalse across functions
* Format
2022-06-02 23:24:11 +02:00
Paul Fultz II
d7c914bd3e
Handle subfunction values in valueflow conditions ( #4128 )
2022-05-29 19:57:10 +02:00
Paul Fultz II
5999b35130
Fix 10944: FN: knownConditionTrueFalse ( #4124 )
...
* Fix 10944: FN: knownConditionTrueFalse
* Use or
* Format
2022-05-23 23:22:08 +02:00
Paul Fultz II
feaef46436
Fix 11076: Assert failure / crash with loop over init list ( #4119 )
2022-05-21 08:25:09 +02:00
Paul Fultz II
90e6c10c12
Fix 11072: FP arrayIndexOutOfBounds, nullPointer with nested loops ( #4113 )
...
* Fix 11072: FP arrayIndexOutOfBounds, nullPointer with nested loops
* Format
* Remove print statement
2022-05-18 08:29:30 +02:00
Paul Fultz II
fbba72ab5a
Fix 11057: FP danglingTemporaryLifetime with reference member ( #4103 )
...
* Fix 11057: FP danglingTemporaryLifetime with reference member
* Add test
* Format
* Use ast for number of arguments
* Get number of arguments using ast
* Skip aggregate constructor when there are too many arguments
* Format
2022-05-13 06:51:07 +02:00
Paul Fultz II
5f9bee9b91
Fix 11056: FP uninitvar with known condition in loop ( #4107 )
...
* Fix 11056: FP uninitvar with known condition in loop
* Format
2022-05-12 06:37:48 +02:00
Paul Fultz II
be6daa94bb
Fix 11053: Integer division by zero in calculate.h ( #4092 )
...
* Fix 11053: Integer division by zero in calculate.h
* Format
2022-05-09 20:27:32 +02:00
Paul Fultz II
69f09da63e
Fix 11044: FP knownConditionTrueFalse after early return ( #4091 )
...
* Fix 11044: FP knownConditionTrueFalse after early return
* Format
2022-05-09 20:26:52 +02:00
Paul Fultz II
474c7fe5cc
Fix 10953: False positive: Possible null pointer dereference when calling derived function ( #4044 )
2022-04-26 17:57:06 +02:00
Paul Fultz II
5d5562266d
ValueFlow: Assume constant is nonzero when its negated ( #4041 )
...
* ValueFlow: Assume constant is nonzero when its negated
* Format
* Format
2022-04-23 06:19:07 +02:00
Paul Fultz II
4eed29502c
ValueFlow: Set values to parameters to longjmp and setjmp ( #4040 )
...
* ValueFlow: Set values to parameters to longjmp and setjmp
* Format
2022-04-23 06:18:55 +02:00
Paul Fultz II
6deb8068fa
Fix 10981: ValueFlow: multiplication with 0 should have known value 0 ( #4023 )
2022-04-14 18:13:04 +02:00
Paul Fultz II
09597bc7e8
Fix 10956: ValueFlow: Incorrect value when assigned to two variables ( #4019 )
...
* Fix 10956: ValueFlow: Incorrect value when assigned to two variables
* Format
2022-04-14 07:35:07 +02:00
chrchr-github
5ac4afa5b8
Fix cppcheckError with spaceship operator ( #10251 ) ( #4001 )
...
* Fix cppcheckError with starship operator (#10251 )
* Fix test case
* Return result
2022-04-13 12:23:38 +02:00
Paul Fultz II
99757c6d06
ValueFlow: Set values to parameters to escape functions ( #3994 )
...
* ValueFlow: Set values to parameters to escape functions
* Format
2022-04-11 07:23:58 +02:00
Paul Fultz II
45b4580554
Fix 10957: Crash on valid code ( #3991 )
2022-04-10 22:47:58 +02:00
Paul Fultz II
74667d1e2a
Fix 10418: false negative: knownConditionTrueFalse ( #3981 )
...
* Improve handling inverted condition
* Fix tests
* Rename variables for clarity
* Add initial test
* Add another test
* Format
* Fix FP
2022-04-07 06:48:13 +02:00
Paul Fultz II
bb640c4879
Fix 10950: Crash on function declaration ( #3979 )
...
* Fix 10950: Crash on function declaration
* Format
2022-04-06 19:00:05 +02:00
Paul Fultz II
1d92665ad2
Fix 10867: false negative: containerOutOfBounds with std::array (regression) ( #3976 )
...
* Fix 10867: false negative: containerOutOfBounds with std::array (regression)
* Format
2022-04-06 06:25:28 +02:00
Paul Fultz II
39265f8ce0
Fix 10931: Assert failure in setSymbolic() ( #3967 )
...
* Fix 10931: Assert failure in setSymbolic()
* Format
2022-04-03 20:04:18 +02:00
Paul Fultz II
0547cbcd26
Fix 10647: FN knownConditionTrueFalse for impossible Boolean value ( #3968 )
...
* Add impossible values for bool
* Fix valueflow tests
* Fix assertion failure
* Add test
* Format
2022-04-03 20:04:05 +02:00
Paul Fultz II
ff902369e0
Fix 10851: False positive: known variable value below for loop ( #3891 )
...
* Fix 10851: False positive: known variable value below for loop
* Format
* Add test for 10863
* Format
2022-03-12 06:15:35 +01:00
chrchr-github
27baa20f38
Fix #10779 FN: stlOutOfBounds (off by one) ( #3872 )
...
* Fix #10779 FN: stlOutOfBounds (off by one)
* Format
* Simplify
2022-03-04 17:13:13 +01:00
chrchr-github
2dd6c75b35
Fix #10838 Crash/nullptr deref in getEndOfExprScope() ( #3870 )
...
* Fix #10838 Crash/nullptr deref in getEndOfExprScope()
* Format
2022-03-03 17:08:23 +01:00
Daniel Marjamäki
915ae4b845
ValueFlow: Fix crash
2022-03-02 21:12:37 +01:00
chrchr-github
d79d6e60db
Fix #10828 Internal error. Token::Match called with varid 0 ( #3859 )
...
* Fix #10828 Internal error. Token::Match called with varid 0
* Fix test
2022-02-26 23:48:29 +01:00
Paul Fultz II
dbc80787e1
Fix 10821: FN: containerOutOfBounds ( #3856 )
...
* Fix 10821: FN: containerOutOfBounds
* Format
* Fix cppcheck warning
* Add valueflow tests
* Format
* Fix some bugs
* Format
2022-02-25 05:53:51 +01:00
Paul Fultz II
1ac16413ea
Another fix for 10800: Hang / memory exhaustion on numerical code ( #3851 )
...
* Another fix for 10800: Hang / memory exhaustion on numerical code
* Format
2022-02-22 07:21:26 +01:00
chrchr-github
734e3ac6da
Fix cppcheckError with for loop ( #3847 )
2022-02-21 18:14:20 +01:00
chrchr-github
18e00bb4fd
Fix #10817 Crash in checkPassByReference() / #10810 Stack overflow with decltype / #10763 Crash on invalid code ( #3840 )
...
* Fix #10817 Crash in checkPassByReference()
* Format
* Fix #10810 Stack overflow with decltype
* Fix #10763 Crash on invalid code in TemplateSimplifier::templateParameters
2022-02-18 12:59:21 +01:00
chrchr-github
6635e6cc07
Fix #10795 cppcheckError with for loop ( #3841 )
2022-02-17 22:12:19 +01:00
Paul Fultz II
78228599da
Fix 10800: Hang / memory exhaustion on numerical code ( #3822 )
...
* Fix 10800: Hang / memory exhaustion on numerical code
* Format
* Add another test
* Format
2022-02-11 06:52:28 +01:00
Oliver Stöneberg
f32583e097
removed OVERRIDE and FINAL defines and use the keywords directly ( #3767 )
2022-02-10 23:02:24 +01:00
Paul Fultz II
5d25050b06
Fix 10788: False positive: zerodivcond when using an assert ( #3816 )
2022-02-10 20:22:14 +01:00
Paul Fultz II
a50452517d
Fix 10794: Crash in MultiValueFlowAnalyzer::getProgramState() ( #3815 )
...
* Fix 10794: Crash in MultiValueFlowAnalyzer::getProgramState()
* Format
2022-02-10 07:43:27 +01:00
Paul Fultz II
569332a50a
Fix 10786: False positive: arrayIndexOutOfBoundsCond ( #3803 )
2022-02-06 20:14:13 +01:00
Paul Fultz II
a639c59780
Fix 10787: False positive: knownConditionTrueFalse with a conditional exit ( #3804 )
2022-02-06 20:13:44 +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 ( #3757 )
2022-01-27 19:03:20 +01:00
Paul Fultz II
40147c1e4b
Fix 10719: Crash in valueFlowIterators() ( #3756 )
...
* Fix 10719: Crash in valueFlowIterators()
* Format
2022-01-26 06:42:41 +01:00
Paul Fultz II
1a949c00b0
Fix 10723: Assertion 'tok && tok->exprId() > 0 && "Missing expr id for symbolic value"' in valueFlowSmartPointer() ( #3755 )
...
* Fix 10723: Assertion 'tok && tok->exprId() > 0 && "Missing expr id for symbolic value"' in valueFlowSmartPointer()
* Format
2022-01-26 06:28:13 +01:00
Paul Fultz II
01e14a12f1
Fix 10755: Assertion "!maxValue->isKnown()" from valueFlowInferCondition ( #3739 )
...
* Fix 10755: Assertion "!maxValue->isKnown()" from valueFlowInferCondition
* Format
2022-01-22 12:25:20 +01:00
Paul Fultz II
0737cc4d8c
Fix 10708: Assertion "!maxValue->isKnown()" from valueFlowInferCondition ( #3736 )
...
* Fix 10708: Assertion "!maxValue->isKnown()" from valueFlowInferCondition
* Format
2022-01-21 09:56:24 +01:00
Oliver Stöneberg
55ff684f34
added unusedFunction self check to CI / cleanups ( #3526 )
2022-01-18 22:02:25 +01:00
Paul Fultz II
4af98f21d6
Fix 10588: crash ( #3691 )
2022-01-16 12:33:31 +01:00
Paul Fultz II
fe7595cd9d
Fix 10677: crash during valueFlowInferCondition ( #3687 )
2022-01-09 22:43:08 +01:00
Paul Fultz II
50862d1ace
Fix 10665: Crash in ExpressionAnalyzer ( #3661 )
2022-01-02 08:09:23 +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
chrchr-github
ca311ebcdf
ASSERT() on calls to Tokenizer::tokenize() in test code ( #3501 )
2021-11-29 07:34:39 +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
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
Daniel Marjamäki
f701a9361d
chmod; Use 644 for source files
2021-11-17 08:25:25 +01:00
Paul Fultz II
a0d3c2c719
Handle for loop conditions in afterCondition ( #3561 )
2021-11-14 18:30:36 +01:00
Paul Fultz II
771188238c
Fix 10574: ValueFlow: conditional values in constructor initializer list ( #3556 )
2021-11-11 08:01:10 +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
Daniel Marjamäki
0f259a5dc6
Fixed #10222 (regression: arrayIndexOutOfBounds)
2021-11-03 20:16:44 +01:00
chrchr-github
728531aba1
Add test cases for ValueFlow issue with cast/switch ( #3527 )
2021-10-28 19:49: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
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
89515600e4
Fix 10538: FN: nullPointer (std::swap pointers) ( #3504 )
2021-10-15 10:58:16 +02:00
Paul Fultz II
6b9ef1fc58
Propagate symbolic values for identity operators ( #3497 )
2021-10-14 16:46:36 +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
chrchr-github
f3e1f0d41b
Fix #10238 : char* confused with char ( #3484 )
2021-10-05 18:04:48 +02:00
chrchr-github
428144c53c
Fix #10513 : vector constructed from pointers ( #3473 )
2021-10-04 07:55:17 +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
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
chrchr-github
609e20d9d8
ValueFlow: string can be constructed from init list ( #3459 )
2021-10-02 23:09:49 +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
b0b3f7ec2d
Fix 10464: FP: knownConditionTrueFalse ( #3452 )
2021-09-09 07:49:56 +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
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
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
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
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
Paul Fultz II
e62cdbb664
Deduce symbolic values from conditions ( #3406 )
2021-08-19 22:01:55 +02:00