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
Paul Fultz II
c92dab1329
Fix 10406: FP danglingLifetime with pointer-to-pointer ( #3401 )
2021-08-14 21:37:17 +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
0f897acecd
Fix FP in solveExpr when using symbolic values ( #3391 )
2021-08-09 20:41:10 +02:00
Paul Fultz II
7f358b2bed
Format with uncrustify ( #3388 )
2021-08-07 20:51:18 +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
Paul Fultz II
61ceff39f5
Fix 10390: FP: knownConditionTrueFalse ( #3374 )
2021-08-02 10:49:39 +02:00
Daniel Marjamäki
1ec7397c21
astyle formatting
...
[ci skip]
2021-08-01 14:05:30 +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
c34691ff56
Fix 10354: FP knownConditionTrueFalse after bitwise and/xor ( #3360 )
2021-07-26 22:22:50 +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
00eb71fd49
Remove constexpr -> const simplification ( #3346 )
2021-07-22 07:22:26 +02:00