27466 Commits

Author SHA1 Message Date
Daniel Marjamäki
18b526b08a
CI: Fix selfcheck cppcheck warnings (#5359) 2023-08-22 14:49:08 +02:00
andymacg
5a136c3f38
Fix #11877 FP misra 10.4 On array member comparison (#5342)
I also changed the comment header to run tests on misra-test-avr8.c
because I thought that was the intention to use it like misra-test.c; if
not, I can revert.
2023-08-22 12:18:12 +02:00
andymacg
5bb4c6f5bc
Fix #11878 FP misra-c2012-18.7 on function pointer parameter with array-type args (#5343)
https://trac.cppcheck.net/ticket/11878#ticket
2023-08-22 12:03:12 +02:00
Oliver Stöneberg
f91df64fec
fixed some Clazy level0 warnings (#5344)
Regarding the "normalized signatures" see
https://github.com/KDE/clazy/blob/master/docs/checks/README-connect-not-normalized.md
and https://doc.qt.io/qt-6/qmetaobject.html#normalizedSignature.
2023-08-22 12:01:30 +02:00
Oliver Stöneberg
59c3bd22e6
ProcessExecutor: removed unnecessary \0 passing in message reading/writing - fixes stray \0 characters in output (#5354)
This was introduced in #5279. We were transferring the terminating `\0`
via the pipe and also added another one in the parsing. As we are now
directly writing into a `std::string` these extra characters will now
show up in it. So just get rid of them.
2023-08-21 12:17:08 +02:00
chrchr-github
3281fc91db
Fix #11879 FN unreadVariable (regression) (#5345) 2023-08-21 10:44:17 +02:00
chrchr-github
725c431ecc
Fix #11881 FP returnStdMoveLocal / Fix FP incorrectStringBooleanError / Support std::string::starts/ends_with() (#5347) 2023-08-21 10:43:54 +02:00
Paul Fultz II
03b952d5eb
Fix 11579: false negative: knownConditionTrueFalse with non-bool as bool parameter (#5349)
This adds a new checker to check for pointer to bool conversions that
are always known. I removed the previous knownConditionTrueFalse checks
since this was too noisy.
2023-08-20 22:32:41 +02:00
Paul Fultz II
a5cfa85e0d
Fix 11884: Hang in valueFlowGetStrLength (#5352) 2023-08-20 22:01:04 +02:00
chrchr-github
63811b2993
Fix #11872 FN unusedVariable with multidimensional array (#5334) 2023-08-20 11:08:17 +02:00
Paul Fultz II
d691450443
Improve knownArgument to check arguments to any nary function (#5348) 2023-08-19 19:59:15 +02:00
Oliver Stöneberg
a92b10ca3b
fixes #11104 (avoid C++-only parsing when processing C code in parsedecl()) / also avoid remaining Library::detect*() calls (#5346) 2023-08-18 22:48:24 +02:00
chrchr-github
41bdd87d30
Fix #11875: hang in hasBorrowingVariables() (#5337) 2023-08-18 21:02:08 +02:00
Oliver Stöneberg
74c4daaadf
optimized Token::Match() a bit by always inlining Token::multiCompare() (#5332)
Scanning `mame_regtest` with `DISABLE_VALUEFLOW=1` and `--enable=all
--inconclusive`:

Clang 15 `1,170,770,173` -> `1,167,227,434`
GGC 12 `1,370,070,422` -> `1,366,775,852`
2023-08-18 20:41:50 +02:00
Oliver Stöneberg
e669b102f8
renamed Check::reportError(const ErrorMessage&) to writeToErrorList() to reflect its actual behavior (#5322) 2023-08-18 13:45:25 +02:00
Oliver Stöneberg
bfb50ca9d8
removed unnecessary Settings parameter from Check::runChecks() and made Tokenizer a reference (#5308)
There was no need for the `Tokenizer` parameter to be a pointer as it
could never be `nullptr` and was also dereferenced without checking
first.

As a reference to the `Settings` was already available via the
`Tokenizer` there was no need to pass it separately. In the production
code there will only be one instance of it but in the tests we could
have accidentally passed a different one.
2023-08-18 12:03:50 +02:00
Oliver Stöneberg
1bedf4434d
CmdLineParser: deprecated --template <template> and --template-location <template> (#5331)
Both are bugprone since they just take the next parameter which doesn't
start with `-`.

Also `--template` has not been documented since
17842394c00fd0288abfed509baad76aa3a5f2e9 back in 2011(!). And
`--template-location` has never been documented since its induction in
f058d9ad083a6111e9339b4b3506c5da7db579e0. That's also why we can have a
short deprecation period.
2023-08-18 11:59:40 +02:00
Oliver Stöneberg
c7f88db90a
CmdLineParser: deprecated --template <template> and --template-location <template> (#5331)
Both are bugprone since they just take the next parameter which doesn't
start with `-`.

Also `--template` has not been documented since
17842394c00fd0288abfed509baad76aa3a5f2e9 back in 2011(!). And
`--template-location` has never been documented since its induction in
f058d9ad083a6111e9339b4b3506c5da7db579e0. That's also why we can have a
short deprecation period.
2023-08-18 11:59:14 +02:00
Oliver Stöneberg
33dee83c21
moved suppression-specific code out of ErrorLogger (#5329) 2023-08-18 11:55:23 +02:00
chrchr-github
7f22ef4e14
Set ValueType for auto with ternary (#5304) 2023-08-18 10:33:26 +02:00
chrchr-github
827e87afe7
Fix #11579 FN knownConditionTrueFalse with non-bool as bool parameter / #9450 string literal to bool conversion in function call (#5338) 2023-08-18 10:32:52 +02:00
Oliver Stöneberg
5dbcea3f1d
enabled and mitigated readability-container-size-empty clang-tidy warnings (#5340) 2023-08-17 17:01:08 +02:00
Oliver Stöneberg
3cf9100198
fixed #6316 (Use std::to_string() in place of MathLib::toString() ...) - deleted default implementation of Mathlib::toString() (#5341)
It was also used inconsistently and seemed to imply there is some
special handling which wasn't the case. It was just an alias for
`std::to_string()` for non-`double` types. So there was no need for it.

---------

Co-authored-by: Robert Reif <reif@earthlink.net>
2023-08-17 16:46:32 +02:00
Oliver Stöneberg
d8b44dff56
fixed/suppressed several compiler warnings (#5327) 2023-08-16 19:35:53 +02:00
Oliver Stöneberg
84a9b3a5f2
enabled and mitigated modernize-use-equals-default clang-tidy warnings / removed unnecessary default destructors (#5335) 2023-08-16 17:13:36 +02:00
Oliver Stöneberg
6a263ba026
optimized Library::detectContainerInternal() a bit (#5333)
Scanning `cli/filelister.cpp` with `DISABLE_VALUEFLOW=1` and
`--enable=all -Ilib -D__GNUC__`

Clang 15 `111,300,996` -> `106,883,955`
GCC 13 `110,555,879` -> `105,983,608`
2023-08-16 11:10:38 +02:00
chrchr-github
8b309a8829
Use readdir() instead of deprecated readdir_r() (#5330) 2023-08-16 10:20:53 +02:00
chrchr-github
824f89514a
Add test for #10350, fix arg direction in windows.cfg (#5328) 2023-08-14 17:25:00 +02:00
Paul Fultz II
8aa9d710d1
Fix 11844: FP negativeIndex for known loop (#5282) 2023-08-14 15:17:05 +02:00
chrchr-github
c257c70347
Fix #11546 FP danglingTemporaryLifetime with unknown member (#5256) 2023-08-14 14:32:35 +02:00
Ryan M. Lederman
d064f9c243
-j 0 causes indefinite hang. require >= 1 (#5326)
In cppcheck 2.11.1 (macOS), using `-j 0` actually causes cppcheck to do
nothing–it stalls indefinitely.

I could only find one place where `mSettings.jobs` was validated against
> 0 and it's simply an assert, so you wouldn't hit it in a release
build.

- Require -j >= 1 
- Cap -j at 1024, not 10000  (I don't even know what would happen if
you created 10,000 threads, but nothing good; likely exhaust virtual
memory or grind the process to a halt). 1024 is still obscene but there
may be some hypercomputers out there that have that many logical cores.
2023-08-14 11:55:32 +02:00
Oliver Stöneberg
693084470d
TestCmdlineParser: fixed some TODO test cases (#5325) 2023-08-14 11:37:59 +02:00
Oliver Stöneberg
d076da8f7c
added missing __GNUC__ define for selfcheck (#5324)
This was causing some code not to be enabled in the selfchecks leading
to some missing warnings.
2023-08-14 10:29:04 +02:00
Paul Fultz II
52081ef08f
Add special function to match lifetimes (#5320)
This also removes the termination checking in `valueFlowUninit` as this
causes a lot of FNs.
2023-08-14 10:27:00 +02:00
Paul Fultz II
48c91abba6
Fix issue 11867: Assert failure in valueFlowContainerSize() (#5317) 2023-08-13 22:31:38 +02:00
chrchr-github
466da1e77a
Fix FP misusedScopedObject (#5321) 2023-08-13 22:24:17 +02:00
Oliver Stöneberg
5371455606
optimized pipe writing/reading and ErrorMessage serialization a bit (#5279) 2023-08-13 11:52:02 +02:00
chrchr-github
d4d77edeae
Fix FP uninitStructMember / cleanup from #5311 (#5315) 2023-08-12 23:46:31 +02:00
Oliver Stöneberg
2b3dec4418
TestCmdlineParser: properly reset settings and parser between tests (#5310) 2023-08-12 21:43:12 +02:00
Paul Fultz II
0901ba9a7e
Fix 11865: Assert failure in setSymbolic() (#5318) 2023-08-12 19:58:09 +02:00
Anton Lindqvist
5c6962c273
Fix FP unusedVariable with arrays (#5319) 2023-08-12 16:55:52 +02:00
Anton Lindqvist
b9cc138e57
Fix FP badBitmaskCheck in nested binary expressions (#5316)
If one operand is another binary expression, recursively ensure that no
nested operands are expanded macros.
2023-08-11 23:06:24 +02:00
chrchr-github
720ae01898
Fix #11353 FP uninitvar for struct member set via pointer (#5314) 2023-08-11 18:46:51 +02:00
chrchr-github
a7d487f6db
Fix #11805 FP uninitvar for stringstream into deref pointer to uninit var / #11804 FP uninitvar for array in struct in struct (#5311) 2023-08-11 18:45:58 +02:00
chrchr-github
76ffd21ecf
Update releasenotes.txt [skip ci] (#5313) 2023-08-11 16:49:49 +02:00
chrchr-github
560982de94
Fix FP leakNoVarFunctionCall (#5309) 2023-08-10 20:55:02 +02:00
chrchr-github
23deadb370
Fix #11866 FN memleak when pointer is converted to bool (#5306) 2023-08-10 15:38:12 +02:00
Oliver Stöneberg
de9795b07b
deprecated qmake build system / removed Qt5 fallback when using USE_QT6=On (#5271)
QT 5 is now completely EOL and since we never supported Qt6 in qmake
which also has various shortcomings, it is time to at least deprecate it
and direct users to CMake instead.
2023-08-09 22:40:15 +02:00
Paul Fultz II
24479c60f9
Fix 11850: false negative: knownConditionTrueFalse with std::string::empty() after modification (#5307) 2023-08-09 20:33:44 +02:00
Oliver Stöneberg
4e8c240129
updated CI to Clang 17 (#4797) 2023-08-09 12:45:15 +02:00