chrchr-github
6c24d2b865
Fix #11321 FP uninitvar for in-class member initialization ( #4547 )
2022-10-14 19:48:27 +02:00
Daniel Marjamäki
ca32cf11ba
Fix handling of --performance-valueflow-max-time=T
2022-10-04 20:01:19 +02:00
Daniel Marjamäki
8686997292
Add experimental option --performance-valueflow-max-time=T
2022-10-04 14:02:55 +02:00
Oliver Stöneberg
cff1cd9cda
applied clang-tidy `misc-const-correctness` fixes for POD types, iterators and references ( #4529 )
...
* applied `misc-const-correctness` fixes for POD types and iterators
* applied `misc-const-correctness` fixes for references
2022-10-02 07:12:40 +02:00
Oliver Stöneberg
eeb6db05f1
avoid some unnecessary object creations and copies ( #4493 )
2022-09-29 21:47:17 +02:00
Oliver Stöneberg
0481edf9c3
return `SmallVector` from `followAllReferences()` ( #3925 )
2022-09-29 21:41:32 +02:00
Oliver Stöneberg
b9e07e918e
enabled and fixed `readability-named-parameter` clang-tidy warnings ( #4487 )
2022-09-27 20:03:25 +02:00
Paul Fultz II
09944c0b7e
Fix 11298: FP danglingTemporaryLifetime when constructing from const char* ( #4479 )
...
* Fix 11298: FP danglingTemporaryLifetime when constructing from const char*
* Format
2022-09-18 08:30:58 +02:00
Paul Fultz II
de7d02293f
Fix 11308: FP accessMoved with virtual function ( #4478 )
...
* Fix 11308: FP accessMoved with virtual function
* Format
2022-09-18 08:30:06 +02:00
Paul Fultz II
d34de745c0
Fix 11306: FP knownConditionTrueFalse with strlen() ( #4477 )
...
* Fix 11306: FP knownConditionTrueFalse with strlen()
* Add another test
2022-09-18 08:29:10 +02:00
Oliver Stöneberg
339484d2a1
mitigated and enabled more clang-tidy warnings ( #4470 )
...
* fixed some `performance-inefficient-string-concatenation` clang-tidy warnings
* fixed and enabled `modernize-replace-random-shuffle` clang-tidy warning
* fixed and enabled `bugprone-suspicious-string-compare` clang-tidy warning
* mitigated and enabled `readability-non-const-parameter` clang-tidy warnings
* clang-tidy.md: documented some disabled checks
* mitigated and enabled `performance-unnecessary-value-param` clang-tidy warnings
2022-09-16 18:58:59 +02:00
Oliver Stöneberg
b3ec225480
iwyu.yml: use `debian:unstable` to always get latest include-what-you-use / cleaned up includes ( #4466 )
...
* iwyu.yml: use debian:unstable to always get latest include-what-you-use
* cleaned up includes based on include-what-you-use
* mitigated include-what-you-use false positives
2022-09-16 07:15:49 +02:00
chrchr-github
e904f7341e
Fix ValueFlow crash ( #4461 )
2022-09-13 12:25:15 +02:00
Oliver Stöneberg
76d1b9f31a
avoid unnecessary copies with `emplace_back()` ( #4450 )
...
* avoid unnecessary copies with `emplace_back()`
* cmdlineparser.cpp: suppress `accessMoved` selfcheck false positives
2022-09-10 11:25:15 +02:00
Paul Fultz II
53820515c9
Set valueflow for container elements ( #4455 )
...
* Track elements to containers
* Format
* Handle other access methods
* Format
2022-09-10 09:26:44 +02:00
Paul Fultz II
117a753b10
Partial fix 11154: FN: knownConditionTrueFalse ( #4453 )
...
* Partial fix 11154: FN: knownConditionTrueFalse
* Formay
* Add more tests
* FOrmat
* Fix FP
* Add test
* Check for side effects
* Format
* Update tests
* Format
2022-09-08 22:08:38 +02:00
Oliver Stöneberg
dbc05da356
fixed some clang-tidy warnings ( #4435 )
2022-09-08 20:01:41 +02:00
Paul Fultz II
7c986fbef1
Fix 11203: false positive: knownConditionTrueFalse 'always false' when comparing integer with floating-point ( #4350 )
2022-09-08 19:59:02 +02:00
Paul Fultz II
f83b8dd385
Fix 11194: FN: knownConditionTrueFalse ( #4452 )
...
* Fix 11194: FN: knownConditionTrueFalse
* Format
2022-09-08 18:51:44 +02:00
Oliver Stöneberg
d46ea7ba86
avoid unnecessary copies with `push_back()` and `push_front()` ( #4451 )
2022-09-08 09:21:35 +02:00
Paul Fultz II
32d96104d6
Fix 6370: ValueFlow: array element with known value ( #4447 )
...
* Fix 6370: ValueFlow: array element with known value
* Format
* Move comment
2022-09-07 19:16:07 +02:00
Paul Fultz II
6543b429c5
Fix 11285: FN: zerodiv ( #4448 )
...
* Fix 11285: FN: zerodiv
* Format
2022-09-07 19:15:37 +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
Paul Fultz II
6ce5c24f21
Refactor knownConditionTrueFalse check and isUsedAsBool function ( #4432 )
...
* Refactor knownConditionTrueFalse check and isUsedAsBool function
* Format1
* Format
* Skip assign
2022-09-04 10:24:45 +02:00
chrchr-github
456c6b410e
Fix #2304 FN known strcpy parameter ( #4396 )
...
* Fix #2304 FN known strcpy parameter
* Parentheses
* Format
2022-08-24 21:23:45 +02:00
Oliver Stöneberg
0e1cd8b2ac
do not do C++ processing for C code in `parsedecl()` ( #4304 )
2022-08-21 17:11:22 +02:00
Oliver Stöneberg
d73a33d17e
avoid redundant `Token::declEndToken()` calls ( #4363 )
2022-08-20 20:50:14 +02:00
Oliver Stöneberg
16f598c409
added missing `sstream` includes ( #4381 )
2022-08-19 10:16:23 +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
Oliver Stöneberg
98b9f2cbf1
reduced scope of some variables and avoided some copies ( #4328 )
2022-08-16 22:28:39 +02:00
Paul Fultz II
bfd9470600
Fix 11158: FP zerodiv in loop ( #4356 )
...
* Fix 11158: FP zerodiv in loop
* Format
* Add another test
* Format
* Fix FP
* Format
2022-08-13 08:27:20 +02:00
Paul Fultz II
c0f55a2b85
Fix 11142: FP nullPointer before assignment ( #4319 )
...
* Fix 11142: FP nullPointer before assignment
* Format
* Use simpleMatch
2022-08-03 19:05:07 +02:00
Oliver Stöneberg
efaaa58896
fixed some `modernize-use-emplace` false negatives and some `bugprone-assignment-in-if-condition` warnings ( #4311 )
2022-07-28 22:53:59 +02:00
Oliver Stöneberg
b65b47d3a8
enabled and fixed `modernize-pass-by-value` clang-tidy warnings ( #4169 )
2022-07-28 22:51:45 +02:00
chrchr-github
c340b6ae6c
Fix #11191 FP moduloofone with pow() ( #4312 )
2022-07-28 22:11:23 +02:00
Oliver Stöneberg
0005be1dbf
some cleanups ( #4308 )
2022-07-26 08:28:55 +02:00
Oliver Stöneberg
b2f15fdbb1
reduced padding in some classes/structs ( #4295 )
2022-07-24 10:17:11 +02:00
chrchr-github
5342e2cd03
Fix #11037 FP knownConditionTrueFalse with dynamic_cast ( #4297 )
2022-07-20 20:48:17 +02:00
Oliver Stöneberg
4316884123
valueflow.cpp: avoid some copies related to `ErrorPath` ( #4160 )
2022-07-20 10:57:49 +02:00
chrchr-github
9e74da6126
Fix #11098 FP compare with negated constant ( #4282 )
2022-07-16 07:28:15 +02:00
Armin Müller
0ae9877766
Typos found by running "codespell" ( #4260 )
2022-07-10 22:40:05 +02:00
chrchr-github
f5c4a21eae
Fix #10704 FN redundantCopyLocalConst ( #4115 )
2022-07-10 11:33:24 +02:00
Paul Fultz II
edebe746bc
Fix 10361: false negative: uninitvar (std::next(iterator)) ( #4256 )
2022-07-09 07:39:04 +02:00
Paul Fultz II
0b63e7273d
Fix 11162: FP: knownConditionTrueFalse ( #4254 )
...
* Fix 11162: FP: knownConditionTrueFalse
* Format
2022-07-09 00:57:25 +02:00
Daniel Marjamäki
29402b4d1a
Fix Coverity CID1490221 warning. settings is dereferenced and then checked.
2022-07-05 07:46:39 +02:00
Paul Fultz II
e735376f7d
Refactor to use AST for isContainerSizeChanged ( #4222 )
2022-06-19 08:17:05 +02:00
Paul Fultz II
e6fdcb9de2
Refactor to use derefShared ( #4220 )
2022-06-19 08:16:27 +02:00
Paul Fultz II
3e09503561
Fix 11087: false negative: usage of reference to member of temporary object not detected ( #4217 )
...
* Fix 11087: false negative: usage of reference to member of temporary object not detected
* Format
* Add another test case
* Fix FP with pointer
* Format
2022-06-16 19:26:36 +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
de51ebbcf4
Fix 9135: Access of moved variable not detected in loop ( #4215 )
...
* Fix 9135: Access of moved variable not detected in loop
* Format
* Fix issue with pushing back on container
* Format
* Fix null pointer
* Remove yeild for now
2022-06-16 17:40:09 +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
cee48e5e19
Add backtrace to valueflow in debug mode ( #4195 )
2022-06-12 07:13:42 +02:00
Paul Fultz II
653a1ea83e
Fix 11100: FP knownConditionTrueFalse with getter/setter member functions ( #4198 )
...
* Fix 11100: FP knownConditionTrueFalse with getter/setter member functions
* Format
2022-06-11 11:00:40 +02:00
PKEuS
99ce89c003
Improvement: Set varId for variables with global scope operator :: Refactorization: Moved internal class from tokenize.h to tokenize.cpp ( #4184 )
...
Merged from LCppC.
2022-06-11 08:11:16 +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
PKEuS
1275b5275e
LCppC backport: Various optimizations ( #4182 )
...
* Optimization: Use Token::eIncDecOp instead of expensive Token::Match calls
Merged from LCppC.
* Small Optimizations: - Moved a std::set that is only need during initialization of SymbolDatabase to function scope - Use std::vector instead of std::list
Merged from LCppC.
* Optimization: Refactorized various Token::Match calls and surrounding conditions
Merged from LCppC.
* Refactorization: Cleanup usage of std::multimap
Merged from LCppC.
2022-06-08 16:58:57 +02:00
Oliver Stöneberg
ce945ec7fc
enabled and fixed `modernize-use-override` clang-tidy warnings ( #4168 )
2022-06-03 21:32:39 +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
e430a11b49
Add debug_valueflow instrinsic to show valueflow values and its error path ( #4159 )
...
* Add debug_valueflow instrinsic to show valueflow values and its error path
* Format
2022-06-01 06:53:21 +02:00
Paul Fultz II
d7c914bd3e
Handle subfunction values in valueflow conditions ( #4128 )
2022-05-29 19:57:10 +02:00
Paul Fultz II
7405ea039d
Refactor valueflow forward and reverse functions and unify them ( #4127 )
...
* Move functions around
* Make it a template to handle both overloads
* Simplify forward
* Remove container forward
* Remove unused settings params
* Format
* Remove valueFlowForwardExpression
* Format
* Remove init list
* Make const ref
* Remove braces
* Remove braces
2022-05-24 06:41:17 +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
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
Oliver Stöneberg
14421ae627
fail `run-clang-tidy` in case of compiler warnings / fixed Clang warnings / cleanups ( #4036 )
2022-05-15 12:42:29 +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
Oliver Stöneberg
c71033548f
fixed some clang-tidy warnings ( #3080 )
2022-05-08 20:42:06 +02:00
Paul Fultz II
843f7893d6
Fix 11040: FP nullPointer after loop ( #4085 )
2022-05-05 06:55:02 +02:00
Paul Fultz II
5afd6880c3
Fix 11028: False positive: invalidContainer ( #4083 )
...
* Fix 11028: False positive: invalidContainer
* Format
2022-05-05 06:54:36 +02:00
Paul Fultz II
496b45f27b
Fix 11009: FP uninitvar ( #4076 )
...
* Fix 11009: FP uninitvar
* Format
2022-05-04 05:59:01 +02:00
Paul Fultz II
3edb10a006
Fix 11024: FP returnDanglingLifetime with c_str() passed to constructor ( #4072 )
2022-05-03 11:42:32 +02:00
Paul Fultz II
3e686103ae
Fix 10984: False positive: invalidContainer when explictly capturing vector by reference ( #4064 )
2022-04-30 09:36:28 +02:00
Paul Fultz II
4e7125554f
Fix 8358: FP: Condition '(number*0)!=0' is always false ( #4065 )
2022-04-30 09:35:51 +02:00
Paul Fultz II
9fa5c4e201
Fix 11011: FP returnDanglingLifetime with non-const reference argument [inconclusive] ( #4066 )
...
* Fix 11011: FP returnDanglingLifetime with non-const reference argument [inconclusive]
* Format
2022-04-30 08:23:58 +02:00
Paul Fultz II
aafd1e10be
Fix 11006: FP uninitvar with unknown constant ( #4056 )
2022-04-28 10:48:37 +02:00
chrchr-github
bcbc29affb
Fix #10526 FP: negativeIndex if function call is made after index check ( #4052 )
...
* Fix #10526 FP: negativeIndex if function call is made after index check
* Improve container check
* Format
2022-04-27 14:08:44 +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
chrchr-github
6e69b751eb
Fix Match pattern ( #4025 )
2022-04-15 08:48:49 +02:00
Paul Fultz II
28cf14f110
Fix 10975: false negative: dangling reference in class ( #4024 )
...
* Fix 10975: false negative: dangling reference in class
* Format
2022-04-14 18:59:12 +02:00
chrchr-github
6450d5701c
Fix #10979 FP arrayIndexOutOfBoundsCond with sizeof ( #4021 )
...
* Fix #10466 FP constVariable with pointer typedef
* Fix flag check
* Use isStatic()
* Fix #10979 FP arrayIndexOutOfBoundsCond with sizeof and extra parentheses
2022-04-14 18:13:29 +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
Oliver Stöneberg
45158ec064
cleaned up includes based on include-what-you-use ( #4007 )
...
* cleaned up includes based on include-what-you-use
* updated translations
2022-04-13 12:24:00 +02:00
Paul Fultz II
6c82fb05a4
Fix 10954: False positive: returnDanglingLifetime when using c_str() ( #4006 )
2022-04-12 08:09:13 +02:00
Paul Fultz II
61b87bcc60
Fix 10955: False positive: containerOutOfBounds when using a const reference member ( #4005 )
2022-04-12 08:07:55 +02:00
Paul Fultz II
d97942d3c6
Fix 6577: Detect pointer to uninitialised memory with clock_settime() ( #3993 )
...
* Fix 6577: Detect pointer to uninitialised memory with clock_settime()
* Format
2022-04-11 07:23:44 +02:00
Paul Fultz II
45b4580554
Fix 10957: Crash on valid code ( #3991 )
2022-04-10 22:47:58 +02:00
Oliver Stöneberg
25ef9eeb26
use std::string::empty() ( #3910 )
2022-04-09 19:02:37 +02:00
Paul Fultz II
4c1aeb0cb1
Remove old pointer alias check ( #3983 )
2022-04-07 11:36:15 +02:00
chrchr-github
52b4aeb279
Fix #10792 FP knownConditionTrueFalse with double to int cast ( #3964 )
2022-04-07 10:42:57 +02:00
Paul Fultz II
dad10f2ab7
Fix 7684: ValueFlow: function call 'X::GetSize()' ( #3984 )
...
* Improve getting function to calculate the return
* Add test
* Format
* Move to cpp to avoid FP
* Format
2022-04-07 06:49:25 +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
4fde7f8b18
Fix 10449: Regression: knownConditionTrueFalse (strlen/wcslen) ( #3977 )
...
* Refactor library function usage
* Evaluate library function in program memory
* Fix and add tests
* Format
2022-04-06 06:35:38 +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
chrchr-github
cfbbeb4b1b
Partial fix for #10867 FN containerOutOfBounds with std::array ( #3971 )
...
* Partial fix for #10867 FN containerOutOfBounds with std::array
* Format
* Format
* Optimize
2022-04-05 07:34:20 +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
chrchr-github
4bf8718dcb
Fix #10849 FP constStatement with pointers in lambda ( #3961 )
2022-04-01 19:50:40 +02:00
Paul Fultz II
32ded1602b
Fix warnings in switch statements on clang ( #3943 )
2022-03-30 19:30:02 +02:00
Paul Fultz II
21b8c36eb1
Fix 10916: FP: uninitvar ( #3949 )
2022-03-27 10:01:58 +02:00
chrchr-github
479af21405
Fix #10698 FP uninitvar with new and braced initializer ( #3934 )
2022-03-24 20:08:51 +01:00
Paul Fultz II
4b4037540a
valueFlowUninit: Handle arrays and pod types ( #3917 )
...
* valueFlowUninit: Handle arrays and pod types
* Format
* Catch another array case
2022-03-24 06:35:44 +01:00
chrchr-github
3faff5e9fc
Fix #10248 FP knownConditionTrueFalse static variable with direct initialization ( #3922 )
2022-03-22 07:24:40 +01:00
chrchr-github
0e147502cc
Fix #10888 FN variableScope with enum and struct ( #3920 )
...
* Fix #10888 FN variableScope with enum and struct
* Scope reduction
* Scope reduction
2022-03-21 16:05:38 +01:00
Paul Fultz II
40ff9edad6
Fix 10843: FP: danglingTemporaryLifetime ( #3908 )
...
* Fix 10843: FP: danglingTemporaryLifetime
* Format
2022-03-16 17:11:49 +01:00
Armin Müller
7cc45fb393
Typos found by running "codespell" ( #3907 )
...
Co-authored-by: Armin Müller <mueller.armin@foestergroup.de>
2022-03-16 15:28:44 +01:00
Oliver Stöneberg
0d336b868c
avoid some Clang compiler warnings ( #3896 )
2022-03-13 20:07:58 +01:00
Oliver Stöneberg
757287b13c
removed unnecessary varid0 inline suppressions ( #3893 )
2022-03-12 18:02:40 +01: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
fbdfb60809
Warn about buffer overruns when allocating memory with new ( #3879 )
...
* Warn about buffer overruns when allocating memory with new
* Format
* Avoid FP
2022-03-07 19:43:40 +01:00
chrchr-github
7f682d544e
Partial fix for #6615 FN buffer access out of bounds: std::vector ( #3873 )
...
* Fix #10779 FN: stlOutOfBounds (off by one)
* Format
* Simplify
* Partial fix for #6615 FN buffer access out of bounds: std::vector
* Undo
* Format
* Fix test case
2022-03-06 07:41:09 +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
Oliver Stöneberg
4a63af02ed
enabled functionConst and functionStatic in selfcheck ( #3862 )
...
* fixed functionConst findings and enabled it in selfcheck
* fixed functionStatic findings and enabled it in selfcheck
* .travis_suppressions: adjusted comment
* testimportproject.cpp: added missing asserts
2022-03-02 07:46:47 +01:00
Paul Fultz II
0b310b9d07
Fix 10702: FP knownConditionTrueFalse - Member variable modified ( #3857 )
...
* Fix 10702: FP knownConditionTrueFalse - Member variable modified
* Format
* Make parameter const
* Fix FP
* Fix FP
* Update
* Format
2022-02-28 18:54:55 +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
45de9a7d08
Refactor: Use getEndOfExprScope instead of getEndOfVarScope ( #3855 )
2022-02-24 06:50:34 +01:00
chrchr-github
172aafdeb8
Fix #7908 FN: redundant assignment in loop ( #3650 )
2022-02-22 09:51:44 +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
Oliver Stöneberg
b6876d22e6
use inline suppressions for varid0 in selfcheck ( #3842 )
2022-02-21 18:35:02 +01:00
chrchr-github
734e3ac6da
Fix cppcheckError with for loop ( #3847 )
2022-02-21 18:14:20 +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
chrchr-github
24e9859158
Fix #10357 FP stlcstrParam due to incorrect overload resolution ( #3813 )
...
* Fix #10357 FP stlcstrParam due to incorrect overload resolution
* Variable shadowing
2022-02-10 11:17:06 +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
20a5224d7e
Fix 10784: False positive: returnDanglingLifetime using std::tie with variadic template parameters ( #3805 )
2022-02-08 09:03:51 +01:00
Paul Fultz II
f2a419653c
Refactor ProgramMemory to store the expression tokens instead of exprIds ( #3798 )
2022-02-06 20:15:45 +01:00
Paul Fultz II
569332a50a
Fix 10786: False positive: arrayIndexOutOfBoundsCond ( #3803 )
2022-02-06 20:14:13 +01:00
Daniel Marjamäki
3989408738
Update copyright year
2022-02-05 11:45:17 +01:00
Paul Fultz II
11387cbb41
Fix 10768: performance regression ( #3788 )
2022-02-02 13:01:44 +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
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
Paul Fultz II
7b793af451
Fix 10728: Crash in CheckStl::checkDereferenceInvalidIterator2 ( #3721 )
...
* Fix 10728: Crash in CheckStl::checkDereferenceInvalidIterator2
* Format
2022-01-18 14:48:02 +01:00
Armin Müller
5a05631c84
Typos found by running "codespell" ( #3702 )
2022-01-13 17:24:26 +01:00
Paul Fultz II
4ef20f8f1e
Fix 10683: FP danglingTemporaryLifetime with pointer to vector ( #3685 )
2022-01-10 07:34:26 +01:00
Paul Fultz II
fe7595cd9d
Fix 10677: crash during valueFlowInferCondition ( #3687 )
2022-01-09 22:43:08 +01:00
Paul Fultz II
0c9eb5d190
Fix 10681: FP ctuuninitvar with array member ( #3686 )
2022-01-08 10:47:28 +01:00
Oliver Stöneberg
0ba9cb4e64
fixed some unusedFunction warnings ( #3618 )
2022-01-04 15:48:08 +01:00
Paul Fultz II
50862d1ace
Fix 10665: Crash in ExpressionAnalyzer ( #3661 )
2022-01-02 08:09:23 +01:00
Paul Fultz II
0c952ca05d
Fix 10223: ValueFlow; known value for a volatile variable ( #3658 )
2022-01-01 23:15:14 +01:00
Paul Fultz II
73f24b43f9
Fix 10437: FP knownConditionTrueFalse after pointer check ( #3646 )
2021-12-20 07:28:40 +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
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
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
3874c546cc
Fix 10641: FP invalidLifetime with compiler-generated constructor ( #3609 )
2021-12-07 07:43:25 +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
Paul Fultz II
f64bcac004
Fix 10429: Regression: invalidIterator ( #3603 )
2021-12-05 15:46:52 +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
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
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
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
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
c057dcce0f
Fix 10592: False positive: returnDanglingLifetime ( #3557 )
2021-11-11 08:00:05 +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
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
Paul Fultz II
ffc2a9d8e2
Fix 9735 for valueFlowUninit ( #3538 )
2021-11-06 19:06:07 +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
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
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
Paul Fultz II
e20ddd55d6
Propagate partially uninit variables in ValueFlow ( #3533 )
2021-10-30 07:43:37 +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
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
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
Oliver Stöneberg
99db1f3f22
fixed some compiler warnings ( #3502 )
2021-10-13 12:10:26 +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
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
8668d445c7
Add support for string_view ( #3480 )
2021-10-05 08:28:19 +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
chrchr-github
609e20d9d8
ValueFlow: string can be constructed from init list ( #3459 )
2021-10-02 23:09:49 +02:00