Oliver Stöneberg
c36320747f
some `missingInclude`/`missingIncludeSystem` fixes and tests ( #4027 )
...
* do not emit `missingInclude` and `missingIncludeSystem` errors when not enabled / fixed and improved TestPreprocessor::inline_suppression_for_missing_include()
* testpreprocessor.cpp: added missing tests for `missingInclude` and `missingIncludeSystem`
* cppcheckexecutor.cpp: `missingIncludeSystem` was not emitted in normal analysis if `missingInclude` existed
* dmake
* added `run-dmake` as `testrunner` dependency
2022-07-09 23:21:11 +02:00
orbitcowboy
c117f62926
Fixed zerodiv/moduloofone FNs for more math functions
2022-07-09 22:36:17 +02:00
orbitcowboy
8215521843
Fixed zerodiv/moduloofone FNs for more math functions
2022-07-09 19:59:16 +02:00
orbitcowboy
ef47d34e75
Fixed zerodiv/moduloofone FNs for more math functions
2022-07-09 19:21:58 +02:00
orbitcowboy
0282c3a86e
Fixed zerodiv/moduloofone FN for '1/std::expm1(0)'
2022-07-09 17:52:58 +02:00
orbitcowboy
07eeee1620
Fixed zerodiv FN for '1/std::exp2(0)'
2022-07-09 17:47:21 +02:00
orbitcowboy
048d31ec56
Fixed zerodiv FN for '1/std::erfc(42)'
2022-07-09 17:43:17 +02:00
orbitcowboy
87c1e6587a
Fixed zerodiv FN for '1/std::erf(0)'
2022-07-09 17:38:28 +02:00
orbitcowboy
c777cd5060
Fixed zerodiv FN for '1/std::ceil(0)'
2022-07-09 17:32:32 +02:00
orbitcowboy
41b6452604
Fixed zerodiv FN for '1/std::cbrt(0)' and added more test cases for other math functions
2022-07-09 17:28:15 +02:00
Paul Fultz II
6b72274c67
Evaluate math library functions in valueflow ( #4255 )
...
* Evaluate math library functions in valueflow
* Format
2022-07-09 07:40:32 +02:00
Paul Fultz II
edebe746bc
Fix 10361: false negative: uninitvar (std::next(iterator)) ( #4256 )
2022-07-09 07:39:04 +02:00
Jens Yllman
b246781da6
Try to stop range overflow in forwardRange() ( #4235 )
...
* Try to stop range overflow in forwardRange()
* Use predefinded function for check instead
2022-07-09 00:57:44 +02:00
Paul Fultz II
0b63e7273d
Fix 11162: FP: knownConditionTrueFalse ( #4254 )
...
* Fix 11162: FP: knownConditionTrueFalse
* Format
2022-07-09 00:57:25 +02:00
Oliver Stöneberg
b51aea5531
separated process execution code into `ProcessExecutor` ( #4249 )
2022-07-08 16:42:57 +02:00
Tau
c17e2b9826
Correctly interpret boolean literals in `execute()` ( #4251 )
...
* Correctly interpret boolean literals in `execute()`
* Add regeression test case for boolean literals
2022-07-08 12:39:29 +02:00
chrchr-github
bd92e7411c
Fix #11163 Hang on smart pointer with auto type deduction ( #4250 )
...
* Fix #11163 Hang on smart pointer with auto type deduction
* Format
* Format
2022-07-08 12:37:53 +02:00
chrchr-github
89a9e5ecc6
Fix #9944 FP: terminateStrncpy doesn't account for size check ( #4252 )
...
* Fix #9944 FP: terminateStrncpy doesn't account for size check
* Fix container size check
* Undo
* Format
* Rebuild
* Rebuild
2022-07-08 12:35:21 +02:00
Daniel Marjamäki
a71a647c39
Fix syntax error
2022-07-07 19:45:47 +02:00
Daniel Marjamäki
e1d3e6f72e
Catch internal error during whole program analysis
2022-07-07 19:14:18 +02:00
Daniel Marjamäki
d1812c8022
Cppcheck: Write product name if provided in xml output
2022-07-07 17:35:13 +02:00
Daniel Marjamäki
68bb724dcc
ErrorLogger: do not allocate huge std::string when column is -1
2022-07-07 15:07:17 +02:00
Daniel Marjamäki
b888f9cf92
use hash instead of checksum to check if content is changed
2022-07-07 12:16:01 +02:00
Daniel Marjamäki
29402b4d1a
Fix Coverity CID1490221 warning. settings is dereferenced and then checked.
2022-07-05 07:46:39 +02:00
Daniel Marjamäki
d8239b26f1
Tokenizer: Remove simplifyCalculations from simplifyTokenList2
2022-07-04 22:54:43 +02:00
chrchr-github
22aeeb1788
Fix ClangImport crash on Windows paths ( #4246 )
...
* Fix crash on Windows paths
* Fix test
* Enable fix
* Cut trailing ':'
2022-07-02 17:43:52 +02:00
chrchr-github
596f75e2af
Fix FP compareValueOutOfTypeRangeError ( #4245 )
...
* Fix FP compareValueOutOfTypeRangeError
* Remove suppressions
2022-07-01 10:48:32 +02:00
chrchr-github
27578e9c4c
Fix FP returnStdMoveLocal ( #4244 )
2022-06-30 13:50:31 +02:00
chrchr-github
d8e64b4cbb
Fix FP leakNoVarFunctionCall ( #4243 )
...
* Fix #10857 FN: leakNoVarFunctionCall
* Fix TODO
* Fix #10858 FN: leakNoVarFunctionCall (if ( b && malloc ) )
* #11155 FN: leakNoVarFunctionCall (ternary operator)
* Fix #11157 FN: leakNoVarFunctionCall (switch condition)
* Fix FN constStatement
* Fix FP leakNoVarFunctionCall
* Fix FP leakNoVarFunctionCall
* Format
* Fix FP leakNoVarFunctionCall with unknown function
* Fix FP leakNoVarFunctionCall
2022-06-30 13:05:28 +02:00
chrchr-github
06b408ea20
Fix FP leakNoVarFunctionCall with unknown function ( #4242 )
...
* Fix #10857 FN: leakNoVarFunctionCall
* Fix TODO
* Fix #10858 FN: leakNoVarFunctionCall (if ( b && malloc ) )
* #11155 FN: leakNoVarFunctionCall (ternary operator)
* Fix #11157 FN: leakNoVarFunctionCall (switch condition)
* Fix FN constStatement
* Fix FP leakNoVarFunctionCall
* Fix FP leakNoVarFunctionCall
* Format
* Fix FP leakNoVarFunctionCall with unknown function
2022-06-29 13:43:17 +02:00
chrchr-github
b90a726441
Fix FP leakNoVarFunctionCall ( #4241 )
...
* Fix #10857 FN: leakNoVarFunctionCall
* Fix TODO
* Fix #10858 FN: leakNoVarFunctionCall (if ( b && malloc ) )
* #11155 FN: leakNoVarFunctionCall (ternary operator)
* Fix #11157 FN: leakNoVarFunctionCall (switch condition)
* Fix FN constStatement
* Fix FP leakNoVarFunctionCall
* Fix FP leakNoVarFunctionCall
* Format
2022-06-29 07:22:26 +02:00
Paul Fultz II
185294499c
Adjust the severity of the uninitvar ( #4234 )
2022-06-28 22:52:35 +02:00
chrchr-github
f8b796403b
Fix #11146 Crash in expandTemplate() ( #4238 )
2022-06-28 22:43:34 +02:00
Paul Fultz II
a2f2699088
Refactor alias check in isExpressionChangeAt into isAlias function ( #4223 )
2022-06-28 22:40:59 +02:00
chrchr-github
2223cd24b9
Fix #11157 FN: leakNoVarFunctionCall (switch condition) ( #4240 )
...
* Fix #10857 FN: leakNoVarFunctionCall
* Fix TODO
* Fix #10858 FN: leakNoVarFunctionCall (if ( b && malloc ) )
* #11155 FN: leakNoVarFunctionCall (ternary operator)
* Fix #11157 FN: leakNoVarFunctionCall (switch condition)
* Fix FN constStatement
* Fix FP leakNoVarFunctionCall
2022-06-28 14:02:02 +02:00
chrchr-github
cdeebc15ea
Fix #11155 FN: leakNoVarFunctionCall (ternary operator) ( #4239 )
...
* Fix #10857 FN: leakNoVarFunctionCall
* Fix TODO
* Fix #10858 FN: leakNoVarFunctionCall (if ( b && malloc ) )
* #11155 FN: leakNoVarFunctionCall (ternary operator)
2022-06-27 20:55:09 +02:00
chrchr-github
e7e23e87c2
Fix #10858 FN: leakNoVarFunctionCall (if ( b && malloc ) ) ( #4237 )
...
* Fix #10857 FN: leakNoVarFunctionCall
* Fix TODO
* Fix #10858 FN: leakNoVarFunctionCall (if ( b && malloc ) )
2022-06-27 19:35:22 +02:00
chrchr-github
88bf11abba
Fix #10857 FN: leakNoVarFunctionCall ( #4236 )
...
* Fix #10857 FN: leakNoVarFunctionCall
* Fix TODO
2022-06-27 14:19:19 +02:00
chrchr-github
242afc389d
Fix #11148 Regression: Parameter \'ptr\' can be declared as pointer to const ( #4233 )
2022-06-25 21:42:55 +02:00
Daniel Marjamäki
d204c5f894
Tokenizer: Cleanup stuff in simplifyTokenList2
2022-06-25 17:09:51 +02:00
chrchr-github
63e567eb50
Remove simplifyKnownVariables() ( #4232 )
...
* Remove simplifyKnownVariables()
* Add some test cases back
* Remove unused functions
* Format
2022-06-25 08:38:17 +02:00
chrchr-github
60c1eef659
Fix FP containerOutOfBounds with std::map ( #4230 )
2022-06-23 20:26:47 +02:00
chrchr-github
f1212e66f7
Fix FP constVariable with 2D array. ( #4228 )
...
Test case #8717 was actually a FP as well.
2022-06-22 21:22:04 +02:00
Daniel Marjamäki
1d5166d70c
CheckClass: Fix false negatives for uninitMemberVar
2022-06-21 19:28:08 +02:00
chrchr-github
a658baf962
Fix #11143 FP: unreadVariable (remove simplifyMathExpressions()) ( #4227 )
...
* Fix #11143 FP: unreadVariable (remove simplifyMathExpressions())
* Remove unused function, tests
2022-06-21 15:42:23 +02:00
chrchr-github
0d4b4394bb
Fix FP with embedded zeros ( #4226 )
...
* Partial fix for #11137 FN: invalidFunctionArgStr printf argument
* Typo
* Remove <strz>, suppressions
* Add suppresion, remove <strz>
* Add suppressions
* Fix FP with embedded zeros
* Merge
2022-06-21 13:33:45 +02:00
chrchr-github
de2509f1ac
Fix FP with complex array size expression ( #4225 )
...
* Partial fix for #11137 FN: invalidFunctionArgStr printf argument
* Typo
* Remove <strz>, suppressions
* Add suppresion, remove <strz>
* Add suppressions
* Fix FP with complex array size expression
2022-06-21 00:12:11 +02:00
chrchr-github
5b9fa9657d
Partial fix for #11137 FN: invalidFunctionArgStr printf argument ( #4224 )
...
* Partial fix for #11137 FN: invalidFunctionArgStr printf argument
* Typo
* Remove <strz>, suppressions
* Add suppresion, remove <strz>
* Add suppressions
2022-06-20 20:02:22 +02:00
orbitcowboy
ff50a01d36
Fixed handling of PCRE rules, since 'simple' rules have been removed already, set default to 'normal'-tokenlist.
2022-06-20 09:17:11 +02:00
PKEuS
9eb16e1002
Replaced check for pipe() buffer size by ordinary CheckBufferOverrun, provide required Library configuration option ( #4183 )
...
Merged from LCppC.
2022-06-19 12:01:55 +02:00
Daniel Marjamäki
6873f5237b
Tokenizer: removing more stuff from simplifyTokenList2
2022-06-19 10:41:15 +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
2a0b2f538e
Check tokType in match compiler ( #4219 )
...
* Check tokType in match compiler
* Set keyword when tokenlist is missing
2022-06-18 21:30:42 +02:00
Daniel Marjamäki
a7815ed5b0
Tokenizer: Remove more stuff from simplifyTokenList2
2022-06-18 07:31:36 +02:00
Daniel Marjamäki
aa8c17a701
Tokenizer: remove stuff from simplifyTokenList2
2022-06-17 09:44:58 +02:00
Paul Fultz II
3612ddb3f5
Fix unit test failure ( #4218 )
2022-06-17 07:49:45 +02:00
Daniel Marjamäki
968d8d153e
Fixed #11101 (False positive: derived union members are initialized in constructor)
2022-06-16 20:17:57 +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
Daniel Marjamäki
dbb12cb333
Tokenizer: Remove some functions from simplifyTokenList2
2022-06-16 14:06:07 +02:00
Paul Fultz II
46fcdca5ee
Add debug_valuetype intrinsic ( #4210 )
2022-06-15 21:25:55 +02:00
chrchr-github
176eefcbf3
Fix #10655 FN bitwiseOnBoolean with unseen function ( #4214 )
2022-06-14 23:08:17 +02:00
chrchr-github
6d22d6a8ae
Fix FP unusedVar with side effects in destructor ( #4212 )
2022-06-14 09:55:22 +02:00
Daniel Marjamäki
343d04feb4
Tokenizer: Remove simplifyCharAt from simplifyTokenList2
2022-06-12 15:14:48 +02:00
Daniel Marjamäki
8255e32540
cppcheck build dir: do not produce invalid dump file if code is unchanged and checking is skipped.
2022-06-12 11:08:28 +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
bd63534a1c
Fix 10740: valueflow; conditional value. incremented value is oob. ( #4208 )
2022-06-12 07:16:28 +02:00
Paul Fultz II
cee48e5e19
Add backtrace to valueflow in debug mode ( #4195 )
2022-06-12 07:13:42 +02:00
Rikard Falkeborn
187460a277
Library: Replace auto with real types ( #4207 )
...
Following up on fc6c203b0e
, replace auto with the correct types to
clairfy the code. Note the use of const on the first type in the pair,
which allows us to use a reference.
2022-06-11 23:21:25 +02:00
chrchr-github
ecb24e28bc
Fix #10191 FP redundantCopyLocalConst - referenced variable changes ( #4202 )
2022-06-11 16:58:33 +02:00
PKEuS
cb382ac52c
C++20 support: Support consteval and constinit ( #4203 )
...
Backported from LCppC.
2022-06-11 15:28:20 +02:00
Rikard Falkeborn
fc6c203b0e
Library: Use range-based for loops ( #4200 )
2022-06-11 13:51:55 +02:00
Paul Fultz II
8945c151f5
Fix 11124: FP knownConditionTrueFalse with fruit ( #4196 )
...
* Update valueType
* Allow comparisons
* Fix compare op
* Add test
* Format
* Fix FP
* Format
2022-06-11 11:02:04 +02:00
chrchr-github
8579feb3aa
Fix #10545 FP redundantCopyLocalConst with modified object [inconclusive] ( #4197 )
...
* Fix #10545 FP redundantCopyLocalConst with modified object [inconclusive]
* Comment
2022-06-11 11:01:23 +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
82af702c6f
LCppC backport: Restored Check: Detect negative VLA and allocation (new[]) sizes ( #4187 )
2022-06-11 09:55:38 +02:00
Daniel Marjamäki
533b3e2bcb
Tokenizer: Clarify code. The variableMap.find, variableMap.end was not strictly matching.
2022-06-11 09:47:06 +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
chrchr-github
829ca9ab7f
Fix #10935 FP: compareBoolExpressionWithInt with enum and template parameter ( #4193 )
2022-06-10 20:40:37 +02:00
chrchr-github
51c8630bb3
Fix #10618 FP knownConditionTrueFalse with virtual function ( #4194 )
...
* Fix #10618 FP knownConditionTrueFalse with virtual function
* Remove redundant check
2022-06-10 20:17:57 +02:00
Daniel Marjamäki
375880988c
Tokenizer: remove removeRedundantAssignment from simplifyTokenList2
2022-06-10 12:35:05 +02:00
chrchr-github
90392faa2b
Fix crash on nullptr deref ( #4189 )
2022-06-09 18:25:17 +02:00
Daniel Marjamäki
a76ba698c2
Tokenizer: remove simplifyCompoundAssignment from simplifyTokenList2
2022-06-09 07:38:27 +02:00
Daniel Marjamäki
c0f3d5b2fb
Tokenizer: remove simplifyAssignmentInFunctionCall used in simplifyTokenList2
2022-06-08 19:08:18 +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
PKEuS
4bd189c3c8
Refactorization: Faster calculation of CRC32 by avoiding to create a temporary string. Use proper types in checksum functions. ( #4180 )
...
Merged from LCppC
2022-06-08 16:55:06 +02:00
PKEuS
898a3a25a1
ValueType: Added additional unit test ( #4185 )
...
Removed unnecessary library export
Backported from LCppC.
2022-06-08 15:27:56 +02:00
PKEuS
d20ea41325
Refactorization: Removed compatibility hacks for outdated or non-conformant compilers ( #4186 )
...
Merged from LCppC.
2022-06-08 15:16:01 +02:00
PKEuS
44097b59ff
Implemented error handling in cppcheck::Platform::loadFromXmlDocument(), enabled related unit test ( #8409 ) ( #4181 )
2022-06-08 12:35:23 +02:00
Daniel Marjamäki
86a8d88729
Tokenizer: Remove simplification of math functions from simplifyTokenList2
2022-06-08 09:58:11 +02:00
chrchr-github
bb3f490edd
Fix #11090 Infinite recursion in findTypeInBase() ( #4178 )
2022-06-08 09:20:16 +02:00
Oliver Stöneberg
9367be804e
fixed `modernize-use-equals-delete` warnings in headers ( #4177 )
2022-06-07 21:25:23 +02:00
chrchr-github
69834d537b
Fix #9997 False negative: variable is not used ( #4104 )
2022-06-07 21:20:33 +02:00
chrchr-github
1d677c57a8
Fix #11126 FN: noExplicitConstructor with single default parameter ( #4174 )
2022-06-07 21:15:13 +02:00
chrchr-github
b80d06b69e
Don't warn for 'x | MACRO' when MACRO is 0 ( #4176 )
2022-06-07 21:13:31 +02:00
chrchr-github
52453947c8
Don't warn for 'x | 0' in macro ( #4172 )
...
* Fix #11082 FN badBitmaskCheck for binary or with 0
* Add test for #10703
* Don't warn for 'x | 0' in macro
* Add test for #10876
2022-06-06 11:17:36 +02:00
chrchr-github
f962436826
Fix #11082 FN badBitmaskCheck for binary or with 0 ( #4170 )
...
* Fix #11082 FN badBitmaskCheck for binary or with 0
* Add test for #10703
2022-06-04 17:25:10 +02:00