chrchr-github
4e75c08f58
Respect [[maybe_unused]] in unusedPrivateFunction ( #4579 )
2022-11-10 20:58:39 +01:00
Armin Müller
7f74aad8e2
Typos found by running "codespell" ( #4578 )
2022-11-09 22:52:03 +01:00
chrchr-github
ffc0c57562
Fix crashes on nullptr ( #4575 )
2022-11-09 21:56:16 +01:00
gerboengels
bd95efc987
Fix internal error "Unexpected tokens in initializer" with anonymous namespace ( #4577 )
...
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-11-05 22:41:13 +01:00
Daniel Marjamäki
e45e5f9f15
SymbolDatabase: fix ValueType for '&array[x]'
2022-11-05 21:22:08 +01:00
Daniel Marjamäki
ecb2938e7e
SymbolDatabase: Set correct ValueType when there is array-to-pointer decay
2022-11-05 17:38:31 +01:00
gerboengels
d7a8f7f297
Fix couple issues with missing operatorEqVarError ( #4576 )
2022-11-05 10:48:34 +01:00
omarandlorraine
6488650d24
use python3 on debians too ( #3812 )
...
* use python3 on debians too
in Debian 11 which is Bullseye, /usr/bin/python is a Python2
interpreter, which means that cppcheck-htmlreport fails to run here.
So I've chenged the shebang to use python3
* change all shebangs from python to python3
Co-authored-by: Sam M W <smw@alertergroup.co.uk>
2022-11-03 22:14:30 +01:00
Rikard Falkeborn
3c21b9cc53
Fix #11038 , FP memory leak in if-statement in realloc with cast ( #4572 )
2022-11-03 10:37:43 +01:00
chrchr-github
e4c5f36af0
Fix #11373 typedef: not simplified after inline keyword ( #4574 )
2022-11-02 15:15:33 +01:00
chrchr-github
ccf2176664
Fix #11370 FP constStatement with lambda ( #4570 )
...
* Update tokenlist.cpp
* Update testincompletestatement.cpp
* Fix #11370 FP constStatement with lambda
* Format
2022-11-01 11:50:08 +01:00
chrchr-github
d717e62ec3
Fix #11371 Detect assignment to temporary ( #4571 )
...
* Fix #11371 Detect assignment to temporary
* Use AST
* Warn if type definition is not seen
2022-11-01 11:46:42 +01:00
chrchr-github
cf8051b7e2
Fix #11368 FP "Same value in both branches of ternary operator" on plus and minus zero ( #4569 )
...
Fix #11368 FP "Same value in both branches of ternary operator" on plus and minus zero
2022-10-31 15:18:25 +01:00
chrchr-github
6df8573e15
Fix #11369 Syntax error. Unexpected tokens in initializer. ( #4568 )
2022-10-29 21:24:50 +02:00
chrchr-github
b4e78e8ac5
Fix #11357 new internalAstError ( #4564 )
...
* Fix #11357 new internalAstError
* Format
* Handle scope operator
* Format
* Format
2022-10-25 21:50:37 +02:00
chrchr-github
3b5601dbea
Add tests for #9327 , #10597 ( #4566 )
...
* Add test for #9327
* Add test for #10597
2022-10-25 19:41:48 +02:00
chrchr-github
13d81cdd58
#11351 follow-up: Handle more variadic template arguments ( #4554 )
...
* Update templatesimplifier.cpp
* Add tests
2022-10-22 00:28:33 +02:00
chrchr-github
ae16aab997
Handle simple typedefs ( #4558 )
2022-10-22 00:28:05 +02:00
chrchr-github
e046232535
Fix #11362 FP returnDanglingLifetime for pointer to struct member in static array ( #4563 )
...
* Fix #11362 FP returnDanglingLifetime for pointer to struct member in static array
* Undo
2022-10-22 00:27:30 +02:00
chrchr-github
515369739c
Fix #11359 FP constStatement for function-local struct definition+initialization statement ( #4561 )
2022-10-22 00:27:19 +02:00
Razvan Ioan Alexe
1da37461e3
Typo found in Summary of CWE: 758 ( #4553 )
2022-10-20 19:11:15 +02:00
chrchr-github
7b9c99003b
Improve unreachableCodeError: handle library functions ( #4560 )
...
* Update templatesimplifier.cpp
* Add tests
* Improve unreachableCodeError message
* Update templatesimplifier.cpp
* Add tests
* Improve unreachableCodeError message
* Revert "Update templatesimplifier.cpp"
This reverts commit 3fd152ed4063772a5f162bd985c3d91bcc65eb55.
* Revert "Add tests"
This reverts commit e760ab51e66a0a2c3a0250caf4cf3b745db44d10.
* Improve unreachableCodeError: handle library functions
* Fix merge
2022-10-20 07:00:36 +02:00
chrchr-github
9c7b4c9540
Improve unreachableCodeError message ( #4559 )
...
* Update templatesimplifier.cpp
* Add tests
* Improve unreachableCodeError message
* Update templatesimplifier.cpp
* Add tests
* Improve unreachableCodeError message
* Revert "Update templatesimplifier.cpp"
This reverts commit 3fd152ed4063772a5f162bd985c3d91bcc65eb55.
* Revert "Add tests"
This reverts commit e760ab51e66a0a2c3a0250caf4cf3b745db44d10.
2022-10-19 19:19:31 +02:00
chrchr-github
192c30ab1d
Fix crash in arraySize() ( #4556 )
...
* Fix #11355 FN: arrayIndexOutOfBounds
* Fix
* Fix crash in arraySize()
2022-10-19 19:19:01 +02:00
gerboengels
6a01fa9b70
#11134 Fix broken AST with (designated) initializers ( #4550 )
...
* Make control flow a bit easier, and more similar to previous code
Made similar to around line 790
* In a cpp11init, always parse only the corresponding } (#11134 )
- _always_, because in some cases this was omitted (around line 790) or too strict (around line 860)
- _only_, and not following tokens which happen to be } as well (around line 1030)
* Fix unit tests: AST was incorrect, now is fixed
auto var{ {{},{}}, {} };
Old AST:
```
{
|-var
`-{
`-,
|-,
| |-{
| `-{
`-{
```
New AST:
```
{
|-var
`-,
|-{
| `-,
| | |-{
| | `-{
`-{
```
Compare the same example, but with `X{}` instead of just `{}`:
`auto var{ a{b{},c{}}, d{} };`
```
{
|-var
`-,
|-{
| |-a
| `-,
| | |-{
| | | `-b
| | `-{
| | | `-c
`-{
`-d
```
This structure is similar to that of the new AST, not the old AST
* Fix unit tests: another AST was incorrect, now is fixed
Code: `auto var{{1,a::b{2,3}}, {4,a::b{5,6}}};`
Old AST:
```
{
|-var
`-{
`-,
|-,
| |-1 'signed int'
| `-{
| | |-::
| | | |-a
| | | `-b
| | `-,
| | | |-2 'signed int'
| | | `-3 'signed int'
`-{
`-,
|-4 'signed int'
`-{
|-::
| |-a
| `-b
`-,
|-5 'signed int'
`-6 'signed int'
```
New AST:
```
{
|-var
`-,
|-{
| `-,
| | |-1 'signed int'
| | `-{
| | | |-::
| | | | |-a
| | | | `-b
| | | `-,
| | | | |-2 'signed int'
| | | | `-3 'signed int'
`-{
`-,
|-4 'signed int'
`-{
|-::
| |-a
| `-b
`-,
|-5 'signed int'
`-6 'signed int'
```
* Fix unit tests: missing ; after class, resulting in incorrectly being marked as cpp11init
Because of the missing `;` after the class declaration, it was marked as a cpp11init block.
Which it isn't, and which now throws an exception
* Fix cpp11init to let unit tests pass again
The following unit tests failed on the newly introduced throws, because the code for these tests incorrectly marked some tokens as cpp11init:
TestVarID::varid_cpp11initialization
TestTokenizer::checkRefQualifiers
* Fix typo
* Improve check for void trailing return type
Observation: the only function body _not_ containing a semicolon, is a void function: something like
auto make_zero(ini& i) -> void {
while(--i > 0) {}
}
Non-void function? Then it must return a value, and thus contain a semicolon, which is checked for a few lines later.
* Fix cpp11init with templated trailing return type
In the following example, vector was marked as cpp11init due to the mismatch of `%any% {`
auto f() -> std::vector<int> { return {}; }
I made the assumption that whenever "%any% {" matches, endtok must be set too.
If this assumtion doesn't hold (so "%any% {" matches, but endtok == nullptr), then the for-loop would search all the way to the end of stream. Which I guess was not the intention.
* Remove comments
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-10-19 07:25:15 +02:00
chrchr-github
5a8e55c083
Fix #11355 FN: arrayIndexOutOfBounds ( #4555 )
...
* Fix #11355 FN: arrayIndexOutOfBounds
* Fix
2022-10-18 07:24:24 +02:00
chrchr-github
c6c339a3e7
Fix #11351 Assert failure in templatesimplifier.cpp ( #4552 )
2022-10-16 19:34:25 +02:00
gerboengels
221873e69f
Fix #11319 ( #4549 )
...
In this example:
```
//template<std::same_as<int> T> // <= works
template<same_as<int> T> // <= didn't work
void f()
{}
```
the changed line used to match to `< same_as <`, therefore skip creating links.
The `%op% %name% <` already feels a bit like a workaround. So adding the condition that $op$ shouldn't be a comparison operator, but part of the template, seemed reasonable to me
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-10-16 19:33:44 +02:00
Oliver Stöneberg
2ac9fbc1bf
include all (internal non-generated) headers in clang-tidy checks ( #4100 )
2022-10-16 13:51:17 +02:00
chrchr-github
3273e51fd5
Fix #10412 FN useStlAlgorithm with iterators ( #4157 )
2022-10-16 13:46:26 +02:00
chrchr-github
6c24d2b865
Fix #11321 FP uninitvar for in-class member initialization ( #4547 )
2022-10-14 19:48:27 +02:00
chrchr-github
544ec38ca9
Add test for #2490 ( #4551 )
2022-10-14 11:55:45 +02:00
Daniel Marjamäki
b8b6be48d9
Fixed #9926 (False positive assertWithSideEffects, calling method that has no side effects)
2022-10-12 07:51:50 +02:00
Daniel Marjamäki
2a81388c95
Fixed #11102 (False positive: unreadVariable when union in derived struct is used)
2022-10-11 20:47:07 +02:00
chrchr-github
c51fb3864a
Add test for #10801 ( #4544 )
2022-10-11 07:23:28 +02:00
Daniel Marjamäki
584a428025
Fixed #10831 ("Analysis failed (lambda not recognized)" with lamba default parameter in lambda signature)
2022-10-10 21:05:48 +02:00
gerboengels
ed06e29f7a
Fix defaulted and deleted functions ( #4540 )
...
* Fix 9392, but for destructors: out-of-line defaulted destructors skipped everything after
Context:
```
struct S {
~S();
};
S::~S() = default;
void g() {
int j;
++j;
}
```
Everything after `S::~S() = default;` was skipped, so the uninitialized variables in g() weren't found.
Out-of-line destructors are useful e.g. when you have a forward declared unique_ptr in the .h,
and `= default` the destructor in the .cpp, so only the cpp needs to know the header for destructing
your unique_ptr (like in the pImpl-idiom)
* Fix unit test, by correctly fixing 10789
Previous commit broke this test, but also provided the tools for a cleaner fix
* Document current behaviour
* Rewrite control flow
* Fix deleted functions, which skipped everything after
`a::b f() = delete` triggered the final else in SymbolDatabase::addNewFunction,
which sets tok to nullptr, effectively skipping to the end of the stream.
* Remove troublesome nullptr, which skips every analysis afterwards
It was introduced in 0746c241
to fix a memory leak.
But setting tok to nullptr, effectively skipping to the end, seems not needed.
Previous commits fixes prevented some cases where you could enter the `else`.
This commit is more of a fall back.
* fixup! Fix deleted functions, which skipped everything after
`a::b f() = delete` triggered the final else in SymbolDatabase::addNewFunction,
which sets tok to nullptr, effectively skipping to the end of the stream.
* fixup! Fix deleted functions, which skipped everything after
`a::b f() = delete` triggered the final else in SymbolDatabase::addNewFunction,
which sets tok to nullptr, effectively skipping to the end of the stream.
* Make it heard when encountering unexpected syntax/tokens
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-10-10 20:17:33 +02:00
Daniel Marjamäki
65cd6ea7b4
Clarify knownConditionTrueFalse warnings
2022-10-10 13:45:30 +02:00
Paul Fultz II
bd22ea565f
Use return instead of condition for alwaysTrueFalse check ( #4446 )
2022-10-09 21:03:48 +02:00
Oliver Stöneberg
fa7e08a29f
optimized `CheckOther::checkDuplicateBranch()` a bit ( #4542 )
2022-10-09 20:48:54 +02:00
Oliver Stöneberg
d1bfae989e
fixed handling of incomplete char/string literals in `isPrefixStringCharLiteral()` - also optimized it a bit ( #4541 )
...
* fixed handling of incomplete char/string literals in `isPrefixStringCharLiteral()` - also optimized it a bit / added tests for `isStringLiteral()` and `isCharLiteral()`
* utils.h: early out in `isStringCharLiteral()` to avoid the loop
2022-10-09 11:19:19 +02:00
Oliver Stöneberg
7ead32f96e
various optimizations ( #4535 )
...
* avoid potentially duplicated `strTolower()` call in `Path::getFilenameExtensionInLowerCase()`
* avoid unnecessary copies
* use `unordered_*` containers for faster lookups
* symboldatabase.cpp: do not perform call in `checkReturns()` until needed
* astutils.cpp: do not perform calls in `isVariableChangedByFunctionCall()` until necessary
* tokenize.cpp: small `hasIfDef()` optimization
* use `unordered_map` for `CheckUnusedFunctions::FunctionUsage::mFunctions` / adjusted test case
2022-10-06 20:12:07 +02:00
Oliver Stöneberg
ee124cd097
modernized `erase()` calls ( #4530 )
2022-10-02 07:13:31 +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
chrchr-github
586c29c772
Partial fix for #9157 False negative: stlOutOfBounds, cast ( #4527 )
...
* Fix leakNoVarFunctionCall FP
* Partial fix for #9157 False negative: stlOutOfBounds, cast
2022-09-30 14:43:21 +02:00
chrchr-github
4d13266e99
Fix #10083 FN unusedScopedObject: temporary lock 'std::lock_guard<std::mutex>(m)' ( #4522 )
...
* Fix #10083 FN unusedScopedObject: temporary lock 'std::lock_guard<std::mutex>(m)'
* Format
* Fix cppcheck-cfg.rng
* Format
2022-09-30 07:25:33 +02:00
chrchr-github
6142ba542a
Fix leakNoVarFunctionCall FP ( #4523 )
2022-09-29 21:58:11 +02:00
chrchr-github
260a757791
Fix #10839 internalAstError with function returning a function ( #4514 )
2022-09-29 21:56:26 +02:00
chrchr-github
b8b6b41833
Fix #10802 Broken AST lambda inside for loop ( #4520 )
...
* Fix #10802 Broken AST lambda inside for loop
* Add some boost and wxwidget defines (on behalf of "david ingamells")
2022-09-29 13:29:50 +02:00
chrchr-github
33fde8ae6b
Add tests for #1770 , #10130 ( #4519 )
...
* Add test for #6541 , avoid duplicate warning
* Add test for #5475
* Fix test
* Merge
* Add test for #8666
* Fix #11239 checkLibraryCheckType with asm goto() (invalid varid)
* Format
* Add tests for #1201 , #2654
* Fix test
* Add test for #6379
* Add tests for #1770 , #10130
2022-09-29 12:33:34 +02:00
chrchr-github
32c7b919ba
Add tests for #1201 , #2654 , #6379 ( #4518 )
...
* Add test for #6541 , avoid duplicate warning
* Add test for #5475
* Fix test
* Merge
* Add test for #8666
* Fix #11239 checkLibraryCheckType with asm goto() (invalid varid)
* Format
* Add tests for #1201 , #2654
* Fix test
* Add test for #6379
2022-09-29 07:05:29 +02:00
chrchr-github
56e2af5dec
Fix #9653 FP leakReturnValNotUsed although (void) is specified ( #4431 )
2022-09-27 20:09:04 +02:00
Oliver Stöneberg
b9e07e918e
enabled and fixed `readability-named-parameter` clang-tidy warnings ( #4487 )
2022-09-27 20:03:25 +02:00
chrchr-github
cab4997b0b
Fix #11039 Empty AST with delete new / #11327 FP leakReturnValNotUsed with new and offset ( #4513 )
...
* Fix internalAstError with new
* Format
* nullptr check
* Add test for #11039
* Fix #11039 Empty AST with delete new / #11327 FP leakReturnValNotUsed with new and offset
2022-09-27 18:12:58 +02:00
chrchr-github
0f79f8bd70
Fix internalAstError with new ( #4508 )
...
* Fix internalAstError with new
* Format
* nullptr check
2022-09-26 22:05:58 +02:00
chrchr-github
64f3f85804
Fix #11332 Function::addArguments found argument 'b' with varid 0 wit… ( #4506 )
...
* Fix #11332 Function::addArguments found argument 'b' with varid 0 with lambda parameter
* Fix varid0 warning
2022-09-26 18:21:21 +02:00
Paul Fultz II
fc39a4d1bb
Fix 11171: False positive: missing return statement when std::enable_if_t is used ( #4504 )
...
* Fix 11171: False positive: missing return statement when std::enable_if_t is used
* Format
* Return false
* Workaround bug in cppcheck
2022-09-26 18:20:42 +02:00
orbitcowboy
2bdeaf858e
Added regression test for ticket #11091 - FP: Using object that is a temporary
2022-09-24 22:11:04 +02:00
chrchr-github
2808fc615e
Fix #10057 "statement without effect" / #4779 FN unusedScopedObject does not work for classes in different namespace ( #4500 )
...
* Partial fix for #10057 unused variable without assignment not detected
* Add test for #9672
* Fix #4779 FN unusedScopedObject does not work for classes in different namespace
* Merge
* Fix #10057 "statement without effect" (unused variable without assignment) not detected
* Format
2022-09-24 12:49:37 +02:00
Oliver Stöneberg
dc03a50414
some small cleanups and refactorings ( #4488 )
...
* moved `plistFile` from `ErrorLogger` to `CppCheck`
* got rid of global CWE objects
* lib/CMakeLists.txt: suppress some `-Wfloat-equal` clang warning in matchcompiled builds as well
* lib/CMakeLists.txt: moved a loop into proper block
* test/CMakeLists.txt: simplified `add_fixture`
* test/CMakeLists.txt: moved `fixture_cost`
* fixed `naming-privateMemberVariable` selfcheck warning
2022-09-24 11:59:13 +02:00
chrchr-github
d608bec414
Fix FP with std::array ( #4497 )
...
* Fix #1655 wrong usage of std::string in memcpy
* Fix memsetClass FP
* Fix #8619 FN memset on container containing structs with containers
* Token::Match
* Use AST
* simpleMatch
* Fix FP with std::array
* simpleMatch
2022-09-23 20:18:49 +02:00
chrchr-github
0bb82b70d9
Fix #11328 FN functionStatic, functionConst with this ( #4496 )
...
* Fix #11328 FN functionStatic, functionConst with this
* Fix FP
2022-09-23 08:46:31 +02:00
chrchr-github
bb2ba53bf5
Add tests for #6504 , #11177 ( #4494 )
...
* Add test for #11177
* Add test for #6504
2022-09-22 19:41:29 +02:00
Jim Kuhn
f27fbdd8ab
Fix sense of test (.analyzerinfo files get placed in wrong directory) ( #4486 )
...
* Fix sense of test (.analyzerinfo files get placed in wrong directory)
* Update testanalyzerinformation.cpp
style (tabs -> spaces)
2022-09-21 17:38:23 +02:00
chrchr-github
3b07661fd3
Fix #11293 debug: CheckClass::isMemberVar found used member variable 'x' with varid 0 ( #4489 )
2022-09-21 17:35:10 +02:00
chrchr-github
2aca275e0c
Fix #8619 FN memset on container containing structs with containers ( #4491 )
...
* Fix #1655 wrong usage of std::string in memcpy
* Fix memsetClass FP
* Fix #8619 FN memset on container containing structs with containers
* Token::Match
* Use AST
* simpleMatch
2022-09-21 17:33:48 +02:00
chrchr-github
3644d79162
Fix duplicateConditionalAssign FP ( #4484 )
...
* Fix #9406 FN redundant assignment of Boolean variable
* Fix warning, refactor
* Update testcondition.cpp
* Fix duplicateConditionalAssign FP
* Format
2022-09-20 21:57:27 +02:00
chrchr-github
48999cf1d1
Add support for std::ofstream::precision() ( #4485 )
...
* Add support for std::copy_n/merge/stable_sort
* Format
* Add support for std::unordered_set::count(), std::push_heap
* Missing include
* Add support for std::iota
* Missing include
* Add support for std::ofstream::precision()
* Typo
* Typo
2022-09-20 17:23:18 +02:00
chrchr-github
2ce25abd81
Add support for std::iota ( #4481 )
...
* Add support for std::copy_n/merge/stable_sort
* Format
* Add support for std::unordered_set::count(), std::push_heap
* Missing include
* Add support for std::iota
* Missing include
2022-09-20 07:30:24 +02:00
chrchr-github
dcb332acb0
Fix #9406 FN redundant assignment of Boolean variable ( #4482 )
...
* Fix #9406 FN redundant assignment of Boolean variable
* Fix warning, refactor
* Update testcondition.cpp
2022-09-20 07:30:12 +02:00
chrchr-github
f274d499a1
Fix #11171 FP missing return statement when std::enable_if_t is used ( #4480 )
...
* Fix #11171 FP missing return statement when std::enable_if_t is used
* Add check
2022-09-19 12:47:58 +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
8126d5c1a6
improved `TestCmdlineParser` ( #4475 )
2022-09-17 18:50:25 +02:00
chrchr-github
cb6f04a16c
Fix #11315 FP zerodivcond from enum definition / #11310 FP unassignedVariable with static variable ( #4476 )
...
* Fix #11315 FP zerodivcond from enum definition
* Simplify Boolean expression
* Fix #11310 FP unassignedVariable with static variable
2022-09-17 18:50:07 +02:00
Oliver Stöneberg
897826006e
mitigated some clang-tidy warnings in headers ( #4472 )
...
* erroritem.h: avoid `performance-no-int-to-ptr` clang-tidy warning
* suppress `readability-inconsistent-declaration-parameter-name` clang-tidy warnings for Qt signals
* tokenlist.h: mitigated `readability-make-member-function-const` clang-tidy warnings
* fixed `modernize-use-override` clang-tidy warnings in headers
* fixed `modernize-pass-by-value` clang-tidy warnings in headers
* tokenize.cpp: avoid unnecessary copy
2022-09-16 18:59:15 +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
chrchr-github
45ccc9ba1e
Fix ctunullpointer FP ( #4471 )
2022-09-16 12:11:34 +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
d6aab96734
Add support for std::unordered_set::count(), std::push_heap ( #4469 )
...
* Add support for std::copy_n/merge/stable_sort
* Format
* Add support for std::unordered_set::count(), std::push_heap
* Missing include
2022-09-16 07:12:36 +02:00
chrchr-github
c9ade33298
Fix memsetClass FP ( #4465 )
2022-09-15 20:20:49 +02:00
chrchr-github
7111270d5f
Add support for std::copy_n/merge/stable_sort ( #4467 )
...
* Add support for std::copy_n/merge/stable_sort
* Format
2022-09-15 19:56:45 +02:00
chrchr-github
d1386a842a
Fix #11301 debug: constStatementError not handled. ( #4463 )
...
* Fix #11301 debug: constStatementError not handled.
* Use function
2022-09-14 23:57:02 +02:00
chrchr-github
266174ddc4
Fix #10993 danglingTemporaryLifetime reported in two different locati… ( #4462 )
...
* Fix #10993 danglingTemporaryLifetime reported in two different locations for std::string_view usage
* Missing include
* Add test
2022-09-14 07:28:04 +02:00
chrchr-github
07caf17eb3
Fix #1655 wrong usage of std::string in memcpy ( #4460 )
2022-09-13 15:14:25 +02:00
chrchr-github
e904f7341e
Fix ValueFlow crash ( #4461 )
2022-09-13 12:25:15 +02:00
Paul Fultz II
43caa32abf
Fix 9755: false negative: access of moved variable in conditional code ( #4459 )
...
* Fix 9755: false negative: access of moved variable in conditional code
* Format
2022-09-11 12:32:01 +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
Daniel Marjamäki
92845295b8
Fix broken CI caused by my qt fix
2022-09-08 11:12:38 +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
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
Oliver Stöneberg
b3762cd76a
actually perform system tinyxml2 build on macos / fixed system tinyxml2 include ( #4445 )
...
* lib/CMakeLists.txt: removed unnecessary external include
* look up tinyxml2 include dir when using system one and specify it
* lib/CMakeLists.txt: do not treat bundled headers as system ones
* CI-unixish.yml: actually perform system tinyxml2 build on macos
2022-09-06 18:30:59 +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
016793f258
Fix 11295: Regression FP: knownConditionTrueFalse ( #4443 )
2022-09-06 07:31:38 +02:00
chrchr-github
31118fdce5
Fix noreturn FP with while() ( #4429 )
...
* Fix checkLibraryFunction FPs
* Fix FP with fclose()
* Format
* Fix FP with reinterpret_cast
* Fix noreturn FP with while()
2022-09-04 10:26:31 +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
Maksim Derbasov
f93b588603
New check: use memcpy/memset instead of loop ( #4257 )
2022-09-03 23:29:06 +02:00
chrchr-github
cf52ee098a
Fix checkLibraryFunction FPs ( #4423 )
...
* Fix checkLibraryFunction FPs
* Fix FP with fclose()
* Format
* Fix FP with reinterpret_cast
2022-09-02 07:51:10 +02:00
chrchr-github
79daad8ff4
Fix #11020 FP arrayIndexOutOfBounds if string literals are assigned conditionally ( #4428 )
2022-09-01 22:59:46 +02:00
Daniel Marjamäki
4779f0e172
TemplateSimplifier: Fixed instantiation when template parameters are A<..>, B<..>
2022-09-01 20:24:01 +02:00
chrchr-github
5804cc44e7
Fix FP bufferAccessOutOfBounds ( #4427 )
...
* Fix FN with buffer size 1
* Fix FP bufferAccessOutOfBounds
2022-08-31 19:31:37 +02:00
chrchr-github
3925a27182
Fix FP knowConditionTrueFalse ( #4419 )
...
* Fix #10426 FN (style) Condition 's.empty()' is always false
* Fix test
* Fix FP knowConditionTrueFalse
* Check for casts
* Fix FP for user-defined functions
* Adjust condition detection
* Tweaks
2022-08-30 18:08:24 +02:00
chrchr-github
9ab4f9976d
Fix #10426 FN (style) Condition 's.empty()' is always false ( #4414 )
...
* Fix #10426 FN (style) Condition 's.empty()' is always false
* Fix test
2022-08-29 12:25:10 +02:00
chrchr-github
1e14e360cb
Fix #8295 FN (error) Buffer is accessed out of bounds (wcpncpy, wcsncpy) ( #4412 )
...
* Fix #8295 FN (error) Buffer is accessed out of bounds (wcpncpy, wcsncpy)
* Fix cfg, validation
* Fix validation
2022-08-29 12:24:58 +02:00
chrchr-github
df704361f6
Fix FN with buffer size 1 ( #4410 )
2022-08-29 12:24:44 +02:00
Daniel Marjamäki
a400c94230
Update Copyrights
2022-08-28 14:22:12 +02:00
Daniel Marjamäki
5e0fc24bb7
Fixed #11232 (Syntax Error: AST broken, binary operator '!=' doesn't have two operands)
2022-08-27 18:02:19 +02:00
chrchr-github
7156afe003
Fix #5140 FN (error) buffer access out of bounds - known argument ( #4402 )
...
* Fix #5140 FN (error) buffer access out of bounds - known argument const char* argv[]
* Format
2022-08-26 17:27:54 +02:00
chrchr-github
b815153b0c
Add test for #10594 ( #4397 )
2022-08-26 11:36:47 +02:00
chrchr-github
917496a844
Fix #5678 FN destructor with no definition hide mismatching alloc/dealloc ( #4401 )
...
* Fix #5678 FN destructor with no definition hide mismatching allocation / deallocation
* Format
* Fix test
* Format
2022-08-25 22:52:51 +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
Daniel Marjamäki
112852f70b
formatting
2022-08-24 08:53:59 +02:00
Oliver Stöneberg
467648bec6
fixed #11249 (potential hang with -j and --showtime= when using threads) - synchronized access to `TimerResults::mResults` / added TSAN to CI ( #4355 )
2022-08-23 20:30:45 +02:00
chrchr-github
13e8d5220c
Fix another c_strParam regression ( #4394 )
2022-08-23 20:26:36 +02:00
chrchr-github
4be7f689d7
Fix c_strParam regression ( #4393 )
...
* Fix #7515 New check: Not needed c_str() operation
* Comment
* Detect more instances of c_str() misuse
* Fix bad merge
* Check for data() also
* Fix
* Format
* Format
* Fix c_strParam regression
2022-08-23 15:00:27 +02:00
chrchr-github
66fca7ba91
Detect more instances of c_str() misuse ( #4392 )
...
* Fix #7515 New check: Not needed c_str() operation
* Comment
* Detect more instances of c_str() misuse
* Fix bad merge
* Check for data() also
* Fix
* Format
* Format
2022-08-22 14:06:10 +02:00
PKEuS
d81a758850
LCppC backports: Refactorizations/Optimizations ( #4204 )
2022-08-21 17:21:02 +02:00
chrchr-github
d351a97a0f
Fix #8336 FN stlcstrParam ( #4389 )
...
* Fix #7515 New check: Not needed c_str() operation
* Comment
* Fix error messages
* Handle more complex string expressions
* Fix #8336 FN stlcstrParam
* Handle iterators
* Format
* Format
* Parentheses
2022-08-21 13:04:43 +02:00
Oliver Stöneberg
1202efb438
some `--exception-handling` related improvements ( #4368 )
2022-08-20 20:54:31 +02:00
chrchr-github
b04bf7396f
Fix #7515 New check: Not needed c_str() operation ( #4371 )
2022-08-20 20:52:10 +02:00
chrchr-github
5cc8ef7e87
Add test for #9817 ( #4388 )
...
* Add test for #8919
* Add test for #9817
* Revert
2022-08-20 19:23:55 +02:00
Oliver Stöneberg
1d95d1908d
refs #10663 - sped up `Library::detectContainerOrIterator()` by iterating the containers only once ( #4380 )
2022-08-20 12:14:55 +02:00
chrchr-github
2ab8de2650
Fix #11145 FP negativeMemoryAllocationSize with possible value ( #4387 )
2022-08-20 07:56:31 +02:00
Oliver Stöneberg
f138df2909
mathlib.h: replaced slow `std::ostringstream` with `std::to_string()` in `MathLib::toString()` ( #4382 )
2022-08-19 20:44:24 +02:00
chrchr-github
80a486dda0
Fix #11167 FP virtual call in destructor even though class is final / Delete 'final' from specializations ( #4383 )
...
* Add 'final' keyword
* Delete 'final' from specializations
* Fix #11167 FP virtual call in destructor even though class is final
* Fix test
2022-08-19 18:26:00 +02:00
Oliver Stöneberg
1b4141cbe5
added more missing `sstream` includes ( #4384 )
2022-08-19 18:23:15 +02:00
chrchr-github
1aa259569e
Fix #10138 syntax error : int (operator"" _ii)(unsigned long long v) … ( #4374 )
...
* Fix #10138 syntax error : int (operator"" _ii)(unsigned long long v) { return v; }
* Format
2022-08-18 23:38:45 +02:00
chrchr-github
2fee7a6e3f
Add test for #9744 , #11140 ( #4375 )
...
* Add test for #10603
* Add test for #10559
* Add test for #10212
* Format
* Add test for #9744
* Format
* Add test for #11140
2022-08-18 23:37:41 +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
4a64e20592
unusedScopedObject: Don't warn for void statements ( #4370 )
...
* Fix unusedScopedObject FPs
* Simplify
* Simplify
* Fix test
* Don't warn for void statements
* Format
2022-08-17 19:45:46 +02:00
chrchr-github
e9f1665d4f
Add test for #10212 ( #4373 )
...
* Add test for #10603
* Add test for #10559
* Add test for #10212
* Format
2022-08-17 19:38:37 +02:00
chrchr-github
0978cc2d46
Add tests for #10559 , #10603 ( #4367 )
2022-08-17 10:01:49 +02:00
chrchr-github
5b4c6c1e73
Fix #11026 FP pointerOutOfBounds with strlen() ( #4366 )
2022-08-17 09:45:07 +02:00
chrchr-github
1a95515e47
Fix unusedScopedObject FPs ( #4364 )
2022-08-17 09:11:23 +02:00
chrchr-github
3dc2c0bd42
Fix #11257 FN constStatement with misused comma ( #4365 )
2022-08-16 22:10:58 +02:00
Oliver Stöneberg
31d704e4bc
cppcheckexecutor.cpp: extracted platform-dependent code into separate files ( #4359 )
2022-08-16 22:03:44 +02:00
Oliver Stöneberg
4bf5dcd29f
cleaned up includes based on include-what-you-use ( #4358 )
...
* cleaned up includes based on include-what-you-use
* testlibrary.cpp: no need for `empyString` optimization
2022-08-14 12:44:19 +02:00
chrchr-github
afef71f6b6
Partial fix for #10057 unused variable without assignment not detected ( #4348 )
...
* Partial fix for #10057 unused variable without assignment not detected
* Add test for #9672
2022-08-13 08:29:06 +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
chrchr-github
bdbd84ba98
#11238 : Fix regression ( #4349 )
...
* Fix #11238 FP knownConditionTrueFalse with constexpr?
* Modify isConstVarExpression()
* Use predicate
* Format
* #11238 : Fix regression
2022-08-09 13:13:16 +02:00
chrchr-github
974e34490f
Fix #9282 FP Unused private function ( #4327 )
2022-08-07 20:06:32 +02:00
chrchr-github
078a6d7804
Fix #11238 FP knownConditionTrueFalse with constexpr? ( #4341 )
2022-08-07 19:06:19 +02:00
chrchr-github
d5a0dfda00
Fix #11239 checkLibraryCheckType with asm goto() (invalid varid), add test for #8666 ( #4340 )
...
* Add test for #6541 , avoid duplicate warning
* Add test for #5475
* Fix test
* Merge
* Add test for #8666
* Fix #11239 checkLibraryCheckType with asm goto() (invalid varid)
* Format
2022-08-04 21:35:18 +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
Paul Fultz II
6cb3a79a64
Fix 11147: FP invalidContainer with substr() ( #4333 )
...
* Fix 11147: FP invalidContainer with substr()
* Format
2022-08-03 19:04:44 +02:00
chrchr-github
dd927aab9b
Fix #11237 checkLibraryNoReturn with unassigned object ( #4338 )
...
* Handle float values
* Fix #11237 checkLibraryNoReturn with unassigned object
2022-08-03 19:04:10 +02:00
chrchr-github
a62c3ea90e
Fix #11234 Broken AST with auto**, FP constStatement ( #4339 )
2022-08-03 19:03:38 +02:00
chrchr-github
0eabe0505b
Handle float values ( #4336 )
2022-08-02 22:11:31 +02:00
chrchr-github
71f9a7269f
Add test for #6541 , #5475 , avoid duplicate warning ( #4335 )
...
* Add test for #6541 , avoid duplicate warning
* Add test for #5475
* Fix test
2022-08-02 21:43:18 +02:00
chrchr-github
bc409776e3
Fix #10320 Wrong redundant condition: misleading/wrong message ( #4334 )
...
* Fix #10320 Wrong redundant condition: misleading/wrong message
* Use expressionString()
* Clarify condition
* Update testcondition.cpp
* Trigger CI
2022-08-02 18:31:02 +02:00
chrchr-github
92d569afb6
#11233 FP: knownConditionTrueFalse (wrong message text) ( #4330 )
...
* #11233 FP: knownConditionTrueFalse (wrong message text)
* Format
* Update testcondition.cpp
* Trigger CI
2022-08-02 18:18:46 +02:00
chrchr-github
38fdbe0890
Fix #9716 Syntax error for function-try-block in global scope ( #4305 )
...
* Fix #9716 Syntax error for function-try-block in global scope
* static through instance
* Handle multiple catch blocks
* Add test
* Fix skip logic
* Handle init lists in simplifyFunctionTryCatch()
2022-07-31 14:49:50 +02:00
chrchr-github
c878285a42
Add tests for #5804 , #8958 , #9002 , #10031 ( #4326 )
2022-07-30 16:15:32 +02:00
orbitcowboy
1934386738
windows.cfg: deprecate '_alloca()'. Ref. https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/alloca?view=msvc-170
2022-07-29 21:41:32 +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
chrchr-github
304e448749
Fix #8476 --check-library reports missing configuration for static_assert ( #4314 )
2022-07-28 22:47:15 +02:00
chrchr-github
c340b6ae6c
Fix #11191 FP moduloofone with pow() ( #4312 )
2022-07-28 22:11:23 +02:00
Daniel Marjamäki
898ad314ab
badBitmaskCheck: Avoid FP when there is #ifdef in expression
2022-07-28 21:56:05 +02:00
chrchr-github
3fc276fb51
Add test for #11061 ( #4307 )
2022-07-26 11:14:35 +02:00
chrchr-github
58d7185d64
Fix #10077 FP functionConst when overloaded operator ++ is used ( #4309 )
2022-07-26 08:30:59 +02:00
chrchr-github
15f8c71ec3
Fix #9946 FP: unassignedVariable when operator() is called subsequently ( #4303 )
2022-07-24 17:52:14 +02:00
chrchr-github
479533a80a
Rework fix for #11008 ( #4296 )
2022-07-24 12:15:04 +02:00
chrchr-github
1aceded300
Fix #10977 FP noExplicitConstructor with variadic template ( #4301 )
2022-07-24 10:18:19 +02:00
chrchr-github
0d72216cca
Fix BufferOverrun TODO ( #4300 )
...
* Fix BufferOverrun TODO
* clang-tidy
2022-07-22 07:24:34 +02:00
chrchr-github
79f091c59a
Fix uselessCallsConstructor TODOs ( #4299 )
...
* Fix uselessCallsConstructor TODOs
* Format
2022-07-21 22:15:16 +02:00
chrchr-github
5342e2cd03
Fix #11037 FP knownConditionTrueFalse with dynamic_cast ( #4297 )
2022-07-20 20:48:17 +02:00
chrchr-github
457a0cff87
Fix #11016 FP unusedStructMember when used through iterator (regression) ( #4289 )
...
* Format
* Fix #11016 FP unusedStructMember when used through iterator (regression)
* Format
* Fix test
* Format
* Nullptr check
2022-07-19 20:42:54 +02:00
chrchr-github
5e537a666f
Fix --check-library warning for int(i) ( #4293 )
2022-07-19 20:41:18 +02:00
chrchr-github
c736fe8787
Fix #11008 FP doubleFree with pointer in struct ( #4294 )
2022-07-19 20:41:08 +02:00
chrchr-github
6dc606fd6a
Add tests for #8446 , #10750 , #10894 ( #4287 )
2022-07-18 18:03:08 +02:00
Daniel Marjamäki
db155a59c1
Tokenizer: remove simplifyTokenList2
2022-07-18 16:20:36 +02:00
chrchr-github
b08aabefee
Fix #9877 FP unreadVariable (incomplete code; missing macro definition) ( #4278 )
2022-07-17 19:40:39 +02:00
orbitcowboy
4de443957c
gnu.cfg: Added support for error() function. And a TODO testcase for ticket #11197 .
2022-07-17 14:43:52 +02:00
chrchr-github
4894cdab8f
Fix #11108 FP unreadVariable with unique_ptr and unknown c'tor ( #4284 )
...
* Fix #11108 FP unreadVariable with unique_ptr and unknown c'tor
* Fix test
2022-07-16 23:46:55 +02:00
chrchr-github
b16d12b5fb
Improve check for wchar_t ( #4285 )
2022-07-16 23:46:10 +02:00
chrchr-github
109a031ec7
Fix #11195 Add redundantContinue check ( #4283 )
2022-07-16 16:02:58 +02:00
chrchr-github
9e74da6126
Fix #11098 FP compare with negated constant ( #4282 )
2022-07-16 07:28:15 +02:00
chrchr-github
71d386819e
Fix #10356 FP bufferAccessOutOfBounds is reported on strncmp() ( #4281 )
...
* Add test
* Fix #10356 FP bufferAccessOutOfBounds is reported on strncmp()
* Remove suppressions
2022-07-15 17:43:18 +02:00
chrchr-github
53cd3dc665
Fix #10661 FP extern function reported as unused ( #4279 )
2022-07-14 20:59:58 +02:00
chrchr-github
2543dc97d2
Fix FP bitwiseOnBoolean ( #4280 )
2022-07-14 20:59:39 +02:00
chrchr-github
2c7d98626a
Fix FP leakNoVarFunctionCall with Qt object ( #4272 )
...
* Add missing <leak-ignore/>, test
* Fix qt.cfg, format
* Fix FP leakNoVarFunctionCall
* Format
* Delete memory, rule of five
* Missing include
* Avoid dependency
* explicit
* Fix Qt test case
* Fix typo
* Fix
* Add Q_OBJECT
2022-07-13 21:09:53 +02:00
chrchr-github
6eab3cb8bd
Fix #9788 ctu: false negative array index out of bounds for array arguments ( #4277 )
2022-07-13 21:08:51 +02:00
chrchr-github
49117f5aeb
Fix #7375 static_assert shouldn't be reported by --check-library ( #4276 )
...
* No need to check smart pointers, since they take template arguments
* Fix #7375 static_assert shouldn't be reported by --check-library
2022-07-13 21:08:43 +02:00
chrchr-github
b31e40f578
Add tests for #4336 , #4739 , #8319 , #6655 ( #4275 )
...
* Add tests for #4336 , #4739
* Add test for #8319
* Add test for #6655
2022-07-13 21:08:30 +02:00
Daniel Marjamäki
b387ae80f1
Fixed whole program analysis
2022-07-12 22:58:52 +02:00
Daniel Marjamäki
fa5fd9cae0
Fixed #11172 (Unmatched suppression for inline suppression even though --suppress=unmatchedSuppression is used)
2022-07-12 22:51:26 +02:00
PKEuS
f3565e1056
Improvement: Support member variables in CheckOther::checkIncompleteArrayFill() ( #4205 )
...
Merged from LCppC.
2022-07-12 19:43:48 +02:00
chrchr-github
381c38b2f5
Improve check: uselessCallsConstructor ( #4270 )
2022-07-12 17:40:14 +02:00
Oliver Stöneberg
22be5f29aa
fixed #11183 (checkLibraryFunction with parameter to "std::string()") / added rudimentary tests for `CheckFunctions::checkLibraryMatchFunctions()` / added test for #10105 ( #4265 )
2022-07-12 17:39:01 +02:00
Oliver Stöneberg
aea4fd1068
some `TestSuppressions` improvements and cleanups ( #4271 )
2022-07-12 17:36:36 +02:00
chrchr-github
47c2a01392
Fix #11166 inefficient way to remove last character from std::string ( #4267 )
...
* Fix #11166 inefficient way to remove last character from std::string
* Format
* Modify message, add test
* Format
* Fix another warning
2022-07-11 23:07:37 +02:00
chrchr-github
c5dcd49dae
Fix #4233 FN: Bitwise operation with bool and int ( #4266 )
...
* Fix #4233 FN: Bitwise operation with bool and int
* Format
2022-07-11 22:58:37 +02:00
chrchr-github
8fc75402a1
Fix #11179 FP invalidFunctionArgStr ( #4264 )
2022-07-11 22:58:19 +02:00
chrchr-github
f9337b725b
Fix nullptr deref ( #4262 )
...
* Fix some FNs related to c_str()
* Format, fix FP
* Fix nullptr deref
* Fix merge
2022-07-11 22:58:08 +02:00
chrchr-github
c218859418
Fix some FNs related to c_str() ( #4258 )
2022-07-10 11:38:01 +02:00
chrchr-github
f5c4a21eae
Fix #10704 FN redundantCopyLocalConst ( #4115 )
2022-07-10 11:33:24 +02:00
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
orbitcowboy
a8816a2d2f
std.cfg: Improved configuration of some math functions and added more regression tests
2022-07-09 16:32:21 +02:00
orbitcowboy
c2e132b1a3
std.cfg: Improved configuration of asinh().
2022-07-09 16:14:58 +02:00
orbitcowboy
2f41a8dbdd
std.cfg: Improved zerodiv test of math functions and demonstrate that constants from <cmath> can be applied as well.
2022-07-09 10:09:43 +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
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
d1812c8022
Cppcheck: Write product name if provided in xml output
2022-07-07 17:35:13 +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
orbitcowboy
b170a9c61e
wxwidgets.cfg: Fixed wrong configuration of wxRegEx::GetMatch().
2022-07-02 09:24:22 +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
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
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
11860cce4b
Add test for #10463 ( #4231 )
...
* Add test for #10643
* Comment
* Fox comment
2022-06-24 13:55:04 +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
Paul Fultz II
6843bf628b
Use the correct test name for SKIP_TESTS ( #4221 )
2022-06-19 19:26:49 +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
orbitcowboy
3dcdd5f264
std.cfg: Added a TODO test case
2022-06-19 10:13:22 +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
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
chrchr-github
176eefcbf3
Fix #10655 FN bitwiseOnBoolean with unseen function ( #4214 )
2022-06-14 23:08:17 +02:00
chrchr-github
de9b65c737
Add tests for #9194 , #10415 , #4759 , #9876 , #10006 ( #4213 )
...
* Add test for #10152
* Add test for #9773
* Fix test
* Add test for #7529
* Add test for #6371
* Add test for #6475
* Format
* Format
* Fix test
* Remove duplicate test
* Add valueflow test
* Rebuild
* Add tests for #9194 , #10415 , #4759 , #9876 , #10006
2022-06-14 13:05:07 +02:00
chrchr-github
6d22d6a8ae
Fix FP unusedVar with side effects in destructor ( #4212 )
2022-06-14 09:55:22 +02:00
chrchr-github
6f5a5fd947
Add some tests ( #4211 )
...
* Add test for #10152
* Add test for #9773
* Fix test
* Add test for #7529
* Add test for #6371
* Add test for #6475
* Format
* Format
* Fix test
* Remove duplicate test
* Add valueflow test
* Rebuild
2022-06-14 09:54:45 +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
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
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
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
898a3a25a1
ValueType: Added additional unit test ( #4185 )
...
Removed unnecessary library export
Backported from LCppC.
2022-06-08 15:27:56 +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
Daniel Marjamäki
e43d2b8a80
runformat
2022-06-08 09:21:01 +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
orbitcowboy
326d340d76
Added a regression test; A real-world test case like this was found by daca@home: ftp://ftp.de.debian.org/debian/pool/main/o/ogdi-dfsg/ogdi-dfsg_4.1.0+ds.orig.tar.gz head ogdi-ogdi_4_1_0/ogdi/c-api/ecsinfo.c:637:26: error: Invalid strcspn() argument nr 2. A nul-terminated string is required. [invalidFunctionArgStr].
2022-06-04 19:33:56 +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
orbitcowboy
433ce58fe6
Fixed FP found with daca@home: ftp://ftp.de.debian.org/debian/pool/main/libs/libslirp/libslirp_4.7.0.orig.tar.bz2; head libslirp-v4.7.0/src/tftp.c:336:20: error: Invalid strcasecmp() argument nr 1. A nul-terminated string is required. [invalidFunctionArgStr]
2022-06-04 12:00:54 +02:00
orbitcowboy
1c1c72058f
Fixed FP found with daca@home: ftp://ftp.de.debian.org/debian/pool/main/libs/libslirp/libslirp_4.7.0.orig.tar.bz2; head libslirp-v4.7.0/src/tftp.c:336:20: error: Invalid strcasecmp() argument nr 1. A nul-terminated string is required. [invalidFunctionArgStr]
2022-06-04 07:46:28 +02:00
chrchr-github
e6f2929fac
Fix #11085 FN constVariable with range-based for ( #4118 )
2022-06-03 19:24:59 +02:00
orbitcowboy
a74bb485b0
Fixed TODO_ASSERT
2022-06-03 18:59:09 +02:00
orbitcowboy
6680bf9790
Fixed TODO_ASSERT
2022-06-03 18:35:11 +02:00
chrchr-github
111f4e17da
Fix #11117 FP nullPointerArithmetic when adding 0 ( #4167 )
2022-06-03 13:11:54 +02:00
orbitcowboy
1a4bd0a7b3
Fixed FP, found with daca@home: ftp://ftp.de.debian.org/debian/pool/main/k/knot/knot_3.1.8.orig.tar.xz; knot-3.1.8/tests/knot/test_confio.c:301:18: error: Invalid strcmp() argument nr 2. A nul-terminated string is required. [invalidFunctionArgStr]
2022-06-03 13:10:45 +02:00
orbitcowboy
345411a68c
Fixed FP found with daca@home: ftp://ftp.de.debian.org/debian/pool/main/i/imx-usb-loader/imx-usb-loader_0~git20200517.30b43d69.orig.tar.gz; imx_usb_loader/imx_loader_config.c:130:16: error: Invalid strncat() argument nr 2. A nul-terminated string is required. [invalidFunctionArgStr]
2022-06-03 10:20:19 +02:00
orbitcowboy
a59e510cdc
Fixed FP - invalidFunctionArgStr, found with daca@home: ftp://ftp.de.debian.org/debian/pool/main/i/ion/ion_3.2.1+dfsg.orig.tar.gz; ion-open-source/arch-rtems/pmqlsi.c:146:18: error: Invalid mq_send() argument nr 2. A nul-terminated string is required. [invalidFunctionArgStr]
2022-06-03 10:06:32 +02:00
orbitcowboy
8382ea7692
std.cfg: Improved configuration of strpbrk() and added regression tests. These cases were found in the wild (daca@home: ftp://ftp.de.debian.org/debian/pool/main/i/ion/ion_3.2.1+dfsg.orig.tar.gz, ion-open-source/contrib/dtnperf/dtnperf/src/utils.c:71:32: error: Invalid strpbrk() argument nr 2. A nul-terminated string is required. [invalidFunctionArgStr]).
2022-06-03 08:36:25 +02:00
orbitcowboy
4e9565b4e6
Fixed FP invalidFunctionArgStr, found a daca@home: ftp://ftp.de.debian.org/debian/pool/main/h/haskell-hs-bibutils/haskell-hs-bibutils_6.10.0.0.orig.tar.gz
2022-06-02 23:39:04 +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
Oliver Stöneberg
133b9c2790
some `test/CMakeLists.txt` cleanups ( #4067 )
...
* test/CMakeLists.txt: removed unnecessary `CTest` include - gets rid of additional CTest/CDash targets
* test/CMakeLists.txt: adjusted CMake version - `CMAKE_MATCH_<n>` requires 3.9`
* test/CMakeLists.txt: sorted `add_cfg()` calls
* test/CMakeLists.txt: extract test fixtures based on `REGISTER_TEST` macro
* test/CmakeLists.txt: added TODO
2022-06-02 22:26:01 +02:00
orbitcowboy
67795cdfcf
Fixed FPs from Ticket 11119 - invalidFunctionArgStr with null-terminated strings ( #4164 )
...
* Fixed first FP from #11119 - invalidFunctionArgStr with null-terminated strings
* Fixed second test case from #11119 .
* Fixed another FP, found on daca@home ftp://ftp.de.debian.org/debian/pool/main/g/glhack/glhack_1.2.orig.tar.gz.
* Format
2022-06-02 19:30:29 +02:00
orbitcowboy
58460edaf8
Fixed crash due to missing null pointer check.
2022-06-02 11:32:55 +02:00
orbitcowboy
0eae0023a3
posix.cfg: Added missing '<strz/>'-flags
2022-06-02 09:41:10 +02:00
orbitcowboy
63a8eac4d3
std.cfg: Added missing '<strz/>'-flags
2022-06-02 09:23:22 +02:00
orbitcowboy
886b5d1039
Improved invalidFunctionArgStr checking and detect more cases where a NON-null-terminated string is used to call functions, configured with <strz/>.
2022-06-02 01:09:09 +02:00
chrchr-github
cd7362e0e7
Fix FN with default init ( #4162 )
...
* Fix #11099 FP: variableScope when using range constructor to vector
* Format
* Fix FN with default init
2022-06-01 23:18:59 +02:00
chrchr-github
2452a2c01d
Fix #11099 FP: variableScope when using range constructor to vector ( #4161 )
...
* Fix #11099 FP: variableScope when using range constructor to vector
* Format
2022-06-01 21:15:41 +02:00
chrchr-github
423e67bd6a
Fix FP memleak ( #4145 )
2022-05-30 06:55:15 +02:00
Paul Fultz II
d7c914bd3e
Handle subfunction values in valueflow conditions ( #4128 )
2022-05-29 19:57:10 +02:00
chrchr-github
7fbb9c7c13
Fix #10980 FN constVariable with range-based for loop ( #4144 )
...
* Fix #10980 FN constVariable with range-based for loop
* Format
* nullptr check
* Restrict scopes
* Add const
* Undo
* Add more const
2022-05-29 17:06:33 +02:00
chrchr-github
e1c51940a2
Fix #11095 FP constParameter with decremented pointer ( #4131 )
2022-05-28 08:32:58 +02:00
chrchr-github
16a4449901
Fix crash with statement expression ( #4142 )
2022-05-28 00:11:23 +02:00
chrchr-github
16af6561c2
Fix FP memleak with unknown ptr typedef ( #4141 )
...
* Fix #11019 FN memleak with redundant pointer op
* Style
* Fix #7705 FN: Memory leak not detected on struct member
* Fix FP memleak with function call, fix cppcheckError
* Fix FP memleak with array
* Fix FPs memleak with array and ptr to ptr
* Fix FP memleak with unknown ptr typedef
* Format
2022-05-27 23:52:56 +02:00
chrchr-github
d5d6da0dd4
Fix #11094 FP unreadVariable with unique_ptr and unknown type ( #4140 )
2022-05-27 17:17:50 +02:00
orbitcowboy
558e00272d
windows.cfg: Improved configuration of _mbscmp() and _mbscmp_l().
2022-05-27 12:28:30 +02:00
Rikard Falkeborn
068e5bad27
Fix #9966 : FP memleak with multiple assignments in if-statement ( #4138 )
...
Similar to how we do for assignments outside if-statements, bail out
since we do not track multiple variables.
2022-05-27 07:57:43 +02:00
chrchr-github
19dd59eae6
Fix FPs memleak with array and ptr to ptr ( #4139 )
...
* Fix #11019 FN memleak with redundant pointer op
* Style
* Fix #7705 FN: Memory leak not detected on struct member
* Fix FP memleak with function call, fix cppcheckError
* Fix FP memleak with array
* Fix FPs memleak with array and ptr to ptr
2022-05-26 15:27:36 +02:00
chrchr-github
86763b7b0a
Fix FP memleak with array ( #4133 )
...
* Fix #11019 FN memleak with redundant pointer op
* Style
* Fix #7705 FN: Memory leak not detected on struct member
* Fix FP memleak with function call, fix cppcheckError
* Fix FP memleak with array
2022-05-26 00:03:30 +02:00
chrchr-github
2b611709e2
Add test for #11066 ( #4136 )
2022-05-25 23:28:54 +02:00
chrchr-github
1ed280fe63
Fix FP memleak with function call, fix cppcheckError ( #4130 )
...
* Fix #11019 FN memleak with redundant pointer op
* Style
* Fix #7705 FN: Memory leak not detected on struct member
* Fix FP memleak with function call, fix cppcheckError
2022-05-24 14:02:06 +02:00
chrchr-github
2ceaf308de
Fix #11084 : ValueType for pointer typedef, don't warn for typedef'd pointers, improve error message ( #4123 )
...
* Fix ValueType for pointer typedef
* Add test
* Don't warn for typedef'd pointers, improve error message
* Fix tests
* Add TODO
* Fix test
* Set isSimplifiedTypedef() for more tokens, add test
* Add test
2022-05-24 10:09:48 +02:00
orbitcowboy
c30333425b
Added a regression test for ticket #8892 - FN: knownConditionTrueFalse
2022-05-24 09:21:21 +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
chrchr-github
1ced94be43
Fix #11019 FN memleak with redundant pointer op / #7705 FN: Memory leak not detected on struct member ( #4126 )
...
* Fix #11019 FN memleak with redundant pointer op
* Style
* Fix #7705 FN: Memory leak not detected on struct member
2022-05-23 23:21:36 +02:00
Paul Fultz II
e2c35abde5
Fix 11050: False positive: unreadVariable for class variable when another function uses the same variable name ( #4121 )
2022-05-22 09:20:32 +02:00
chrchr-github
22a4fdb6c4
Fix crash in checkPassByReference() ( #4122 )
2022-05-21 16:02:35 +02:00
Daniel Marjamäki
1f6554e2e8
Update copyright year
2022-05-21 12:18:27 +02:00
chrchr-github
2a7f00cf9a
Fix #8545 FN Condition '...' is always true ' uint16_t i; ( i <= 0xFFFF)' ( #4114 )
2022-05-21 08:33:42 +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
a62fb986a5
Fix 11090: Infinite recursion in findTypeInBase() ( #4120 )
2022-05-21 08:24:29 +02:00
chrchr-github
2b723eafcb
Fix ValueType for references in range-based for loop ( #4116 )
...
* Fix ValueType for references in range-based for loop
* Format
2022-05-20 08:48:01 +02:00
chrchr-github
112b1573c5
Fix #11078 FN constructing string from nullptr / #11079 FN unread variables ( #4112 )
...
* Fix #11078 FN constructing string from nullptr / #11079 FN unread variables
* Format
2022-05-18 13:52:44 +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
orbitcowboy
06216b06fc
Fixed failing CI.
2022-05-15 08:53:21 +02:00
orbitcowboy
4f410ffb79
library: Improved argument <valid>-interface to defined values that are explicitly excluded. ( #4111 )
...
* library: Improved <valid>-interface to defined values that are explicitly excluded.
* std.cfg: Improved configuration of remainder[fl]().
* Fixed failing self check
* Fixed failing self check
* std.cfg: Added support for std::remquo().
2022-05-14 16:05:18 +02:00
chrchr-github
52f507d1fb
Fix #8004 unintentional semicolon in expression '.. ; +dostuff();' ( #4109 )
...
* Fix #8004 unintentional semicolon in expression '.. ; +dostuff();'
* Improve error message
* Don't remove single unary + in front of variables
2022-05-13 06:54:02 +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
6d3208ecb0
Fix 11062: false positive: knownEmptyContainer (regression) ( #4106 )
...
* Fix 11062: false positive: knownEmptyContainer (regression)
* Format
2022-05-12 06:24:16 +02:00
Paul Fultz II
5d8da2b83c
Fix 11035: FP arrayIndexOutOfBoundsCond with array and vector ( #4105 )
...
* Fix 11035: FP arrayIndexOutOfBoundsCond with array and vector
* Format
* Move comment
2022-05-12 06:21:33 +02:00
chrchr-github
e7e8b1baf9
Fix #9861 FN: "static" not suggested for non-const method ( #4101 )
...
* Fix #9861 FN: "static" not suggested for non-const method
* Format
* Make functions static
* static
2022-05-11 20:01:22 +02:00
chrchr-github
63a1698335
Fix #11059 FP multiCondition when variable is assigned in if/else ( #4102 )
2022-05-11 20:01:13 +02:00
orbitcowboy
d0b7fe887a
Added a regression test for #4103 - Comparing Boolean variables (> or <)
2022-05-11 11:30:02 +02:00
chrchr-github
942dbad11c
Fix #7197 not getting expected warning in relational comparison of booleans ( #4095 )
...
* Fix #7197 not getting expected warning in relational comparison of booleans
* return nullptr
2022-05-11 08:09:32 +02:00
orbitcowboy
e9641e6de5
std.cfg: Attempt to fix failing CI
2022-05-10 23:09:10 +02:00
Daniel Marjamäki
72ba85a2fc
AST: Fix AST for array size calculation in cast (char (*)[...])
2022-05-10 22:47:57 +02:00
Daniel Marjamäki
4257f9d46a
Tokenizer: fix for __attribute__ before function that returns a reference
2022-05-10 20:59:24 +02:00
chrchr-github
a70d11adb6
Fix #11052 inline static global struct declaration interferes with checks ( #4098 )
2022-05-10 20:43:11 +02:00
orbitcowboy
f23111d610
std.cfg: Improved configuration of some <thread.h> (since C11) functions.
2022-05-10 19:21:41 +02:00
chrchr-github
e2bb77f990
Remove severity 'experimental' from checkComparisonOfBoolWithBool() ( #4097 )
...
* Enable experimental check
* Remove experimental
* Don't compare Booleans using relational operators
2022-05-10 18:25:13 +02:00
chrchr-github
ad547af6f9
Add tests for #6323 , #6855 , #6857 ( #4096 )
...
* Add tests for #6870 , #10749
* Add test for #6372
* Add tests for #6855 , #6857
* Add test for #6323
* Comment
2022-05-10 18:25:01 +02:00
orbitcowboy
57e35513b9
std.cfg: Improved testing of std::system()
2022-05-10 13:53:16 +02:00
chrchr-github
52cbbb0229
Fix FP uninitMemberVar with defaulted special member functions ( #4094 )
...
* Fix #10569 FN: duplicateExpression with multiple strings compared
* Fix compiler warning
* TODO -> ASSERT
* Update testautovariables.cpp
* Improve error message
* Format
* Improve message
* Fix FP with defaulted operator=
* Fix condition
2022-05-10 13:04:45 +02:00
Oliver Stöneberg
56ac230e97
added strict cfg check ( #4093 )
...
* runtests.sh: added strict mode - enabled via `STRICT=1`
* CI-unixish.yml: added strict cfg check
* runtests.sh: disabled syntax check for kde.cpp since `kde-4config` is no longer commonly available in recent distros
* runtests.sh: disabled syntax check for opencv2.cpp since `opencv.pc` is not commonly available in distros
* runtests.sh: added missing trailing slash to `CFG` - fixes define checks
2022-05-10 13:03:58 +02:00
orbitcowboy
6152e5712a
std.cfg: Improved configuration of std::filebuf::open().
2022-05-10 10:17:27 +02:00
orbitcowboy
1382cd837e
std.cfg: Improved configuration of std::*stream::open().
2022-05-10 10:07:55 +02:00
orbitcowboy
6a3520164a
std.cfg: Improved configuration of std::ifstream::open() and std::ios_base::open().
2022-05-10 09:50:02 +02:00
orbitcowboy
440e8f9c22
std.cfg: Improved configuration of std::ofstream::write(), std::ostringstream::write(), std::ostream::write() and std::fstream().
2022-05-10 09:30:13 +02:00
chrchr-github
54f832a2fe
Fix #10569 FN: duplicateExpression with multiple strings compared ( #4087 )
2022-05-09 21:05:35 +02:00
chrchr-github
38bdece3fe
Fix #9391 False negative: Uninitialized struct member (default constructor) ( #4088 )
...
* Fix #9391 False negative: Uninitialized struct member (default constructor)
* Format
* Initialize variables
* Init
2022-05-09 20:28:21 +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
chrchr-github
16ef2c1838
Add test for #6372 ( #4090 )
...
* Add tests for #6870 , #10749
* Add test for #6372
2022-05-09 20:26:15 +02:00
chrchr-github
8c0561a78b
Add tests for #6870 , #10749 ( #4089 )
2022-05-09 14:52:31 +02:00
Daniel Marjamäki
eb9c4b4aed
Tokenizer: Fix handling of __attribute__ for overloaded operator function
2022-05-08 18:19:52 +02:00
orbitcowboy
b847882994
std.cfg: Improved configuration of vfwprintf().
2022-05-08 18:15:22 +02:00
orbitcowboy
0db793fc51
std.cfg: Improved configuration of vfprintf()
2022-05-08 18:06:30 +02:00
orbitcowboy
1942bd5679
std.cfg: Improved configuration of fprintf() and added TODO tests for wcsftime() when array count value exceeds bounds.
2022-05-08 18:02:10 +02:00
Daniel Marjamäki
fab55287f7
Tokenizer: improved handling of __asm__ in function declaration
2022-05-08 16:03:09 +02:00
Daniel Marjamäki
449d351095
Revert "Tokenizer: handle when __asm__ directive is provided for function"
...
This reverts commit f25b8cf662
.
2022-05-07 21:53:10 +02:00
Daniel Marjamäki
f25b8cf662
Tokenizer: handle when __asm__ directive is provided for function
2022-05-07 19:40:03 +02:00
chrchr-github
612d7be85a
Fix #11045 syntaxError with unknown macros and using namespace ( #4086 )
2022-05-05 19:47:56 +02:00
orbitcowboy
f3ae729f89
std.cfg: Improved configuration of fesetexceptflag() and fetestexcept().
2022-05-05 15:07: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
8d16ee946c
Fix 11027: False positive: containerOutOfBounds from condition in assert ( #4084 )
...
* Fix 11027: False positive: containerOutOfBounds from condition in assert
* Format
2022-05-05 06:54:44 +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
chrchr-github
adba751217
Fix #11018 FP uninitvar with redundant pointer op ( #4082 )
...
* Skip redundant pointer op
* Fix #11018 FP uninitvar with redundant pointer op
* Format
2022-05-05 06:54:27 +02:00
chrchr-github
aebc080c0f
Fix #11041 FN constVariable with array of pointers [regression] ( #4080 )
...
* Fix #11041 FN constVariable with array of pointers [regression]
* Use std::vector for deterministic order of results, use helper variables
2022-05-05 06:54:03 +02:00
orbitcowboy
7c816425b9
gnu.cfg: Fixed compiler warning from GCC: warning: ‘struct servent’ declared inside parameter list will not be visible
2022-05-04 20:29:12 +02:00
chrchr-github
9a379925cd
FIx FN shadowVariable in static function ( #4079 )
...
* FIx FN shadowVariable in static function
* Use functionOf
2022-05-04 17:56:16 +02:00
chrchr-github
e2069dd1b9
Fix #10650 FN knownConditionTrueFalse with const int value ( #4078 )
2022-05-04 14:25:00 +02:00
Paul Fultz II
496b45f27b
Fix 11009: FP uninitvar ( #4076 )
...
* Fix 11009: FP uninitvar
* Format
2022-05-04 05:59:01 +02:00
chrchr-github
1e40a2e73e
Fix #5210 C-style pointer casting not detected for casts to ** ( #4075 )
2022-05-03 20:15:42 +02:00
chrchr-github
509e42afd4
Fix #11034 FN duplicateCondition with struct member ( #4074 )
...
* Fix #11034 FN duplicateCondition with struct member
* Update testcondition.cpp
2022-05-03 19:57:30 +02:00
chrchr-github
51b4cf592b
Fix #11029 unknownMacro reported with noexcept (regression) ( #4073 )
2022-05-03 13:37:14 +02:00
orbitcowboy
e293b66ac6
gnu.cfg: Added support for getservent_r().
2022-05-03 11:54:28 +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
orbitcowboy
9f7c34272d
Added a regression test for ticket #10000 - No UnreadVariable for simple class
2022-05-03 06:58:03 +02:00
chrchr-github
8ce0faf723
Fix #10427 Regression: selfInitialization ( #4070 )
2022-05-02 16:49:13 +02:00
orbitcowboy
5a7c998a79
posix.cfg: Improved configuration of getpwuid_r().
2022-05-02 16:48:22 +02:00
orbitcowboy
8cc16f1adb
posix.cfg: Improved configuration of getpwnam_r().
2022-05-02 16:41:33 +02:00
chrchr-github
67f4fe575f
Fix #10978 syntaxError with attribute for function pointer ( #4069 )
2022-05-02 15:05:48 +02:00
orbitcowboy
6c54e7363d
posix.cfg: Added support for fgetpwent_r().
2022-05-02 12:56:47 +02:00
orbitcowboy
86cc410dc2
posix.cfg: Added support for getpwent_r().
2022-05-02 12:51:58 +02:00
orbitcowboy
ba57f33f81
posix.cfg: Added support for getgrnam_r() and getgrgid_r().
2022-05-02 12:28:54 +02:00
orbitcowboy
0ec2d5f40d
std.cfg: Improved configuration of qsort().
2022-05-02 11:58:31 +02:00
orbitcowboy
6a657865eb
posix.cfg: Improved test cases for ffs().
2022-05-01 18:15:32 +02:00
orbitcowboy
6ad5a94acf
gnu.cfg: Improved configuration for memrchr().
2022-05-01 18:10:19 +02:00
orbitcowboy
6f6ddb99b2
std.cfg: Improved tests for memchr().
2022-05-01 18:09:54 +02:00
chrchr-github
e9a0d7979e
Fix #11014 FN redundantPointerOp / remove simplifyMulAndParens() ( #4062 )
2022-05-01 15:46:07 +02:00
orbitcowboy
e0ccfea027
gnu.cfg: Improved configuration of ffsl() and ffsll()
2022-05-01 15:29:35 +02:00
orbitcowboy
178efb7058
posix.cfg: Improved configuration for ffs().
2022-05-01 15:24:57 +02:00
orbitcowboy
cbcbff7d12
posix.cfg: Improved tests for readlink().
2022-05-01 14:17:49 +02:00
orbitcowboy
0e4a17e2ab
posix.cfg: Improved configuration of readlinkat().
2022-05-01 14:08:08 +02:00
orbitcowboy
5db6fc1f54
std.cfg: Improved configuration of localtime_s()
2022-05-01 12:47:13 +02:00
orbitcowboy
01a24d2ce0
posix.cfg: Improved configuration of recv().
2022-05-01 12:27:14 +02:00
orbitcowboy
d6af9da83d
posix.cfg: Improved configuration of recvfrom().
2022-05-01 12:24:15 +02:00
orbitcowboy
85f44d36dd
gnu.cfg: Added support for semtimedop().
2022-05-01 11:41:51 +02:00
orbitcowboy
63e58b9051
posix.cfg: Added support for semop().
2022-05-01 11:41:31 +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
chrchr-github
6a914dc435
Add tests for # 10773, #108787 , #8991 ( #4063 )
...
* Add test for #10773
* Add test for #10878
* Add test for #8991
2022-04-30 08:20:00 +02:00
chrchr-github
e7afb3045b
Fix FP redundantPointerOp with macro ( #4061 )
...
* Fix #10991 FN: Redundant pointer operation
* Fix FP redundantPointerOp
* Check for LValue
* Fix FP redundantPointerOp with macro
* Format
2022-04-29 13:23:50 +02:00
chrchr-github
0467ab1339
Fix #7923 FN memleak with cfg ( #4060 )
2022-04-28 19:50:16 +02:00
chrchr-github
8dbe6994a2
Fix FP redundantPointerOp ( #4058 )
...
* Fix #10991 FN: Redundant pointer operation
* Fix FP redundantPointerOp
* Check for LValue
2022-04-28 15:25:31 +02:00
chrchr-github
3d3885d151
Add test for #9838 / Remove noisy assert ( #4059 )
...
* Add test for #9838
* Remove noisy assert
2022-04-28 15:24:54 +02:00
Paul Fultz II
aafd1e10be
Fix 11006: FP uninitvar with unknown constant ( #4056 )
2022-04-28 10:48:37 +02:00
chrchr-github
7cedf3e0e5
Partial fix for #10983 False positive: returnTempReference with trailing return type ( #4055 )
2022-04-27 20:11:32 +02:00
chrchr-github
034140e7e1
Fix #10991 FN: Redundant pointer operation ( #4054 )
2022-04-27 19:52:56 +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
chrchr-github
6df0f9b3e3
Add tests for #7377 , #8692 , #9180 ( #4053 )
2022-04-27 12:43:21 +02:00
orbitcowboy
6796f9daa2
std.cfg: Moved strdup() from posix.cfg to std.cfg since its now part of C23.
2022-04-27 12:41:40 +02:00
orbitcowboy
b2c3a9e9a3
posix.cfg: Improved configuration for send().
2022-04-27 10:41:57 +02:00
orbitcowboy
9726dc8174
posix.cfg: Improved support for sendto().
2022-04-27 10:35:43 +02:00
orbitcowboy
fa1182c0f1
bsd.cfg: Added support for setbuffer() and setlinebuf().
2022-04-27 10:22:38 +02:00
orbitcowboy
53ebb55e1f
std.cfg: Improved configuration of setvbuf().
2022-04-27 10:09:23 +02:00
orbitcowboy
561e21e2aa
std.cfg: Improved tests for setbuf().
2022-04-27 09:21:09 +02:00
orbitcowboy
fa351e010b
posix.cfg: Improved tests for socketpair()
2022-04-26 18:13:24 +02:00
orbitcowboy
17189e1d6e
std.cfg: Improved configuration of strftime().
2022-04-26 18:03:39 +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
orbitcowboy
7d723a7a60
Merge branch 'main' of https://github.com/danmar/cppcheck into main
2022-04-26 17:51:24 +02:00
orbitcowboy
7e3ac96ebc
std.cfg: Improved tests of vswprintf().
2022-04-26 17:50:59 +02:00
chrchr-github
0dc3cb6eba
Fix #11007 FP nullPointerRedundantCheck with static function pointer ( #4051 )
2022-04-26 17:25:56 +02:00
orbitcowboy
0d35a60954
posix.cfg: Added support for drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48 and lcong48 - generate uniformly distributed pseudo-random numbers.
2022-04-26 17:24:39 +02:00
orbitcowboy
bfbc7e1549
posix.cfg: Added support for getlogin_r().
2022-04-26 10:04:15 +02:00
orbitcowboy
bd1104d786
posix.cfg: Added support for pread().
2022-04-26 09:37:08 +02:00
orbitcowboy
942375741b
posix.cfg: Added support for pwrite().
2022-04-26 09:26:39 +02:00
orbitcowboy
bb98ccf7d4
Ticket #9313 - Added a regression test
2022-04-26 07:45:08 +02:00
chrchr-github
6b5df68677
Fix #11001 syntaxError for valid C code sizeof(enum ...) ( #4045 )
2022-04-26 07:22:53 +02:00
chrchr-github
961ecfbe33
Fix #11003 cppcheckError with nested template arguments ( #4049 )
2022-04-25 22:23:06 +02:00
chrchr-github
1bc0317719
Fix #11002 FP uninitStructMember with extra parentheses ( #4047 )
2022-04-25 22:22:35 +02:00
chrchr-github
b4df064875
Fix #11004 FP AssignmentIntegerToAddress with volatile ( #4046 )
2022-04-25 22:00:37 +02:00
chrchr-github
81f9b9b2b7
Fix FP with ptr to ptr const ( #4050 )
2022-04-25 21:45:11 +02:00
orbitcowboy
d7063806d1
posix.cfg: Improved configuration for swab().
2022-04-25 18:34:31 +02:00
orbitcowboy
d1b6954dd8
std.cfg: Improved configuration for wcsrtombs().
2022-04-25 18:25:52 +02:00
orbitcowboy
31d0b0b73b
posix.cfg: Improved configuration for wcsnrtombs().
2022-04-25 15:54:44 +02:00
orbitcowboy
89ae22c0e1
posix.cfg: Improved configuration for wcsnrtombs().
2022-04-25 15:49:37 +02:00
orbitcowboy
dd2e218bb4
posix.cfg: Added some tests for ttyname_r().
2022-04-25 12:46:27 +02:00
orbitcowboy
d42bab47ae
posix.cfg: Added support for wcsnrtombs().
2022-04-25 12:26:02 +02:00
Paul Fultz II
6b9ac6f7a8
Warn when incrementing uninitialized value ( #4042 )
...
* Warn when incrementing uninitialized value
* Format
2022-04-24 09:56:58 +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
4fa2e3ac87
Use default template in the cfg tests ( #4039 )
2022-04-23 06:18:44 +02:00
orbitcowboy
a75ecbca0e
std.cfg: Improved tests for wcsftime().
2022-04-22 08:29:20 +02:00
orbitcowboy
5d26d62698
posix.cfg: Added more test for wcpncpy().
2022-04-22 08:23:17 +02:00
orbitcowboy
097438f308
posix.cfg: utimes() is a wrapper for utime(), which is obsolescent. Set utimes() as obsolescent as well.
2022-04-22 08:18:21 +02:00
orbitcowboy
478aa6754b
posix.cfg: Added support for wcsncasecmp().
2022-04-22 08:07:20 +02:00
orbitcowboy
0560a946a8
std.cfg: Added more tests
2022-04-22 08:00:45 +02:00
orbitcowboy
051512dd48
bsd.cfg: Added support for pwritev(), preadv(), writev() and writev().
2022-04-22 07:41:03 +02:00
orbitcowboy
b315e8a115
std.cfg: Added more tests for wmemmove() and wmemset().
2022-04-22 07:25:27 +02:00
Oliver Stöneberg
fdca61add9
aligned build options of Visual Studio project configurations and added them to CMake ( #4020 )
2022-04-21 21:28:29 +02:00
orbitcowboy
1bf7b3b7dd
std.cfg: Added more tests for memcmp(), memcpy() and memmove().
2022-04-21 21:01:38 +02:00
Paul Fultz II
3feecc51d6
Fix 10988: FP: Regression, uninitvar ( #4037 )
2022-04-21 19:29:38 +02:00
orbitcowboy
ce35a6c975
std.cfg: Added more tests for strcat() and strcpy().
2022-04-21 16:59:25 +02:00
orbitcowboy
e683f3ce28
std.cfg: Added more test for strncpy().
2022-04-21 16:47:19 +02:00
orbitcowboy
7f48127c0b
std.cfg: Added more test for strncat().
2022-04-21 16:43:52 +02:00
orbitcowboy
a6f87e6b8a
std.cfg: Added more test for strcmp().
2022-04-21 16:13:48 +02:00
orbitcowboy
e06169cf8d
std.cfg: Added more test for strncmp() and wmemcmp().
2022-04-21 16:09:36 +02:00
Oliver Stöneberg
f53ad2391a
CMakeLists.txt: removed left-over Z3 code ( #4035 )
2022-04-21 12:54:16 +02:00
orbitcowboy
7c766a9696
gnu.cfg: Ensure a nullPointer warning is shown for invalid input to mempcpy() and wmempcpy().
2022-04-21 09:19:32 +02:00
orbitcowboy
c7ab35613e
posix.cfg: Cleanup test case.
2022-04-21 09:10:13 +02:00
orbitcowboy
49057543a1
std.cfg: Ensure a warning is issued for null pointer input for strlen().
2022-04-21 09:09:46 +02:00
orbitcowboy
3bd65d42cd
posix.cfg: Fixed bufferAccessOutOfBounds falsen negative for strnlen() and added a TODO for wcsnlen()
2022-04-21 09:02:02 +02:00
orbitcowboy
dad1a68e51
posix.cfg: Fixed FP bufferOverlap-warning of bcopy() and added more tests.
2022-04-21 08:31:22 +02:00
orbitcowboy
1fb1b22bae
posix.cfg: Improved configuration for bzero() and added tests.
2022-04-20 20:57:58 +02:00
orbitcowboy
fe1c1ddcc1
test/posix.c: Formatted code [ci skip].
2022-04-20 18:21:24 +02:00
orbitcowboy
d075cba535
posix.cfg: Ensure null pointer input is correctly handled for bcmp().
2022-04-20 18:18:38 +02:00
orbitcowboy
7cbdea9b81
posix.cfg: Ensure null pointer input is correctly handled for strcasecmp().
2022-04-20 18:15:54 +02:00
orbitcowboy
a8a821a9c7
posix.cfg: Ensure null pointer input is correctly handled for strncasecmp().
2022-04-20 18:13:49 +02:00
orbitcowboy
f3fc5892e1
posix.cfg: Ensure null pointer input is correctly handled for strsep().
2022-04-20 17:58:50 +02:00
orbitcowboy
c17d3a1022
posix.cfg: Ensure null pointer input is correctly handled for stpcpy().
2022-04-20 17:52:38 +02:00
orbitcowboy
1055b118a4
posix.cfg: Ensure null pointer input is correctly handled for gethostname().
2022-04-20 17:40:03 +02:00
orbitcowboy
d0ff2a022a
posix.cfg: Added support for wcwidth().
2022-04-20 17:32:26 +02:00
Oliver Stöneberg
4ddd7e562d
runtests.sh: refactoring and cleanups ( #4029 )
...
* runtests.sh: avoid redundant `pkg-config` checks and simplified the check
* runtests.sh: write a message when something is completely missing
* runtests.sh: derive paths from script location
* runtests.sh: improved readability by using individual functions for each file
* runtests.sh: added helper function `get_pkg_config_cflags()` to clean up cflag lookup from `pkg-config`
* runtests.sh: simplified `xmlstarlet` calls
2022-04-20 17:27:12 +02:00
orbitcowboy
8b90b2d0fd
posix.cfg: Added more tests.
2022-04-20 15:27:14 +02:00
orbitcowboy
1067cb6e5d
posix.cfg: Added support for wcswidth().
2022-04-20 15:23:46 +02:00
orbitcowboy
5be16c3113
std.cfg: Ensure null pointer input is correctly handled for fgets() and fgetws().
2022-04-20 08:50:45 +02:00
orbitcowboy
df84bed889
posix.cfg: Added support for more interfaces.
2022-04-20 07:45:38 +02:00
orbitcowboy
5a3d84d84d
posix.cfg: Added support for aio_read()
2022-04-20 07:27:28 +02:00
orbitcowboy
e0942c1bb4
std.cfg: Ensure warnings are issued for passing null pointer to bsearch().
2022-04-19 21:21:35 +02:00
orbitcowboy
b7bffaa1a7
Formatted code
2022-04-19 21:13:22 +02:00
orbitcowboy
f3907e4c9e
posix.cfg: Added support for aio_suspend().
2022-04-19 21:13:09 +02:00
orbitcowboy
24303bfdd3
wxwidgets.cfg: Fixed FPs due to wrong direction attribute set for wxString::ToDouble and wxString::ToCDouble().
2022-04-19 06:53:34 +02:00
orbitcowboy
6746da5e53
wxwidgets.cfg: Fixed some FPs for wxTextCtrl::GetSelection(), where the argument direction was wrongly set as input.
2022-04-18 15:41:50 +02:00
Oliver Stöneberg
8f728cb4b6
added (partial) support for specifying C++23 and support more "-std" options ( #3212 )
2022-04-15 16:17:36 +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
chrchr-github
7721cd14b6
Fix #10466 FP constVariable with pointer typedef ( #4018 )
...
* Fix #10466 FP constVariable with pointer typedef
* Fix flag check
* Use isStatic()
2022-04-13 21:56:45 +02:00
chrchr-github
8203c74c40
Fix #9648 FP sizeofDivisionMemfunc ( #4017 )
...
* Fix #9648 FP sizeofDivisionMemfunc when result is multiplied again with sizeof later
* Format
2022-04-13 18:21:56 +02:00
chrchr-github
938517b80a
Fix #10265 FP unused private method ( #4015 )
2022-04-13 14:49:28 +02:00
chrchr-github
da1e2b22be
Add some tests ( #4014 )
...
* Test for #10454
* Test for #10493
* Test for #10069
* Test for #10228
* Fix test case
2022-04-13 12:25:53 +02:00
chrchr-github
f323e8a6c6
Fix #10311 FP functionConst ( #4012 )
...
* Fix #10311 FP functionConst
* Format
* Format
2022-04-13 12:25:36 +02:00
chrchr-github
55cb396d18
Fix #10494 Same template name confuses check ( #4011 )
2022-04-13 12:25:21 +02:00
chrchr-github
ea65fe2b63
Fix another FP divideSizeof ( #4009 )
...
* Fix FP divideSizeof
* Format
* Undo
* simpleMatch
* Fix another FP divideSizeof
2022-04-13 12:24:35 +02:00
Oliver Stöneberg
32978933b5
removed leftovers of generated cfg tests ( #4008 )
2022-04-13 12:24:17 +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
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
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
chrchr-github
00badff622
Fix #10315 FP functionConst ( #3997 )
...
* Fix #10315 FP functionConst
* Update releasenotes.txt
2022-04-11 22:55:16 +02:00
chrchr-github
28a024ac4a
Fix #9954 incorrectLogicOperator/knownConditionTrueFalse for constexpr ( #4002 )
2022-04-11 20:42:54 +02:00
chrchr-github
bf6bcafc56
Fix FP divideSizeof ( #4003 )
2022-04-11 20:41:59 +02:00
Oliver Stöneberg
a98346bbe0
generate a program database in all Visual Studio configurations ( #3996 )
2022-04-11 11:28:07 +02:00
Daniel Marjamäki
8f386e15fd
Remove bug hunting. This feature will be provided in Cppcheck premium.
2022-04-11 07:31:33 +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
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
chrchr-github
bd9f5231b8
Fix #10179 FP divideSizeof with dereferenced pointer-to-pointer ( #3786 )
2022-04-10 22:47:27 +02:00
orbitcowboy
aa7a1f25c1
Added regression test from Ticket #3929:comment18
2022-04-10 08:10:11 +02:00
chrchr-github
c8936d04f6
Fix #3886 New Check : Return value of "new" ignored ( #3884 )
2022-04-09 19:06:32 +02:00
Oliver Stöneberg
25ef9eeb26
use std::string::empty() ( #3910 )
2022-04-09 19:02:37 +02:00
chrchr-github
0636018df3
Fix #10368 FP: unassignedVariable with structured binding ( #3990 )
2022-04-09 14:50:30 +02:00
chrchr-github
2bccde0e3b
Fix #9789 FP Logical condition considered always false ( #3985 )
2022-04-09 14:09:10 +02:00
chrchr-github
38bc0ad4c3
Fix regression: wrong member variable ( #3987 )
2022-04-08 08:23:10 +02:00
Paul Fultz II
d2a0b0f78e
Fix 10951: FP knownEmptyContainer with east-const ( #3988 )
...
* Fix 10951: FP knownEmptyContainer with east-const
* Format
* Use simpleMatch
2022-04-08 08:22:39 +02:00
chrchr-github
ceb86afc22
Fix #10952 FP constStatement with cast in return ( #3986 )
2022-04-07 14:11:14 +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
8986cf018f
Fix todo test that was using wrong function ( #3982 )
...
* Fix todo test that was using wrong function
* Format
2022-04-07 06:48:51 +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
09c8cfb2ae
Fix 6624: false negative: std::vector out of bounds access not detected ( #3980 )
...
* Fix 6624: false negative: std::vector out of bounds access not detected
* Format
* Add test for auto
* Fix tests
* Format
2022-04-07 06:47:15 +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
chrchr-github
b73aeeda0e
Fix FP constStatement with comma operator ( #3978 )
...
* Fix FP constStatement with comma operator
* Format
2022-04-06 16:58:17 +02:00
orbitcowboy
64a7ba3c4c
Added regression test for #8332 .
2022-04-06 08:12:41 +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
4c375e7224
Fix #9815 FP redundantInitialization with lambda / #10864 debug: valueFlowConditionExpressions bailout ( #3970 )
...
* Fix #9815 FP redundantInitialization with lambda
* Fix #10864 debug: valueFlowConditionExpressions bailout
* Format
2022-04-05 23:19:17 +02:00
chrchr-github
f5313dc519
Fix crash with defaulted destructor ( #3975 )
2022-04-05 23:18:08 +02:00
chrchr-github
c4dcfef385
Fix #10260 debug: Executable scope 'x' with unknown function. ( #3974 )
...
* Fix #10174 debug: Executable scope 'x' with unknown function
* Format
* Add test for #10198
* Fix #10260 debug: Executable scope 'x' with unknown function.
2022-04-05 15:52:16 +02:00
chrchr-github
3ba6914563
Add test for #10198 ( #3973 )
...
* Fix #10174 debug: Executable scope 'x' with unknown function
* Format
* Add test for #10198
2022-04-05 13:04:20 +02:00