Oliver Stöneberg
6eae4e71f6
make sure executors are only used in the intended context / `TestSuppressions` cleanups ( #4963 )
...
* added asserts to make sure executors are only used in the intended context
* TestSuppressions: specify proper job counts in `checkSuppression*()`
* TestSuppressions: enabled all asserts in `runChecks()`
* TestSuppressions: removed unnecessary setting from `checkSuppression()`
* TestSuppressions: small cleanup in the way tests are called
* TestSuppressions: use `SingleExecutor`
2023-04-28 12:41:53 +02:00
Oliver Stöneberg
9ad26f51e8
removed `CppCheck` dependency from `CppCheckExecutor::parseFromArgs()` ( #4967 )
...
* made `CppCheck::getErrorMessages()` static
* removed `CppCheck` dependency from `CppCheckExecutor::parseFromArgs()`
2023-04-16 13:54:21 +02:00
Daniel Marjamäki
7726a5b5b3
Add a --check-level option ( #4942 )
2023-04-09 13:48:13 +02:00
Oliver Stöneberg
f5e51eace7
do not use string-to-integer conversions without error handling ( #4906 )
2023-04-08 22:29:09 +02:00
Oliver Stöneberg
cfca3a69a2
optimized template string substitutions a bit ( #4840 )
2023-04-08 22:19:52 +02:00
Oliver Stöneberg
1f2b49142e
extracted single job execution into `SingleExecutor` / improved testing / do not unconditionally apply colors to output ( #4882 )
...
* added `Settings::useSingleJob()` and use it instead of checking `jobs` or `jointSuppressionReport`
* extracted single job execution into `SingleExecutor`
* moved `reportStatus()` from `CppCheckExecutor` to Èxecutor
* TestSingleExecutor: improved tests
* added testing of markup extension handling in executors
* cleaned up includes based on `include-what-you-use`
* testsingleexecutor.cpp: suppress `performance-unnecessary-value-param` clang-tidy warnings
* ProcessExecutor: send color via pipe instead of applying it beforehand
* do not unconditionally apply colors to output / disable all colors in tests / adjusted tests for changed output behavior
* fixed precision loss in `Executor::reportStatus()`
* fixed `naming-varname` selfcheck warnings
2023-04-08 18:06:38 +02:00
Oliver Stöneberg
5be8eee943
iwyu.yml: use a distro which has the latest `include-what-you-use` / enabled Qt mappings / cleaned up includes ( #4885 )
2023-04-08 16:08:47 +02:00
Daniel Marjamäki
89a95ddc8f
--performance-valueflow-max-if-count: review comments
2023-04-08 13:07:28 +02:00
Daniel Marjamäki
2359b9ff82
valueflow: limit valueflow in functions that have many ifs
2023-04-01 20:58:15 +02:00
Oliver Stöneberg
5ec0ad6bed
use `ccache` for sanitizer builds / do not use precompiled headers with `ccache` ( #4910 )
...
* added CMake option `DISABLE_DMAKE` to disable `run-dmake` dependencies
* tools/CMakeLists.txt: added TODO
* use `ccache` for sanitizer builds
* aligned selfcheck between sanitizer workflows and disabled some currently unnecessary steps
* CI-unixish.yml: do not use precompiled headers with `ccache`
2023-04-01 09:40:10 +02:00
Paul Fultz II
7231d1cece
Update the isVariableChanged to correctly check the const bit ( #4912 )
2023-03-26 15:12:49 +02:00
Oliver Stöneberg
8148095fe5
cmdlineparser.cpp: fixed compilation ( #4880 )
2023-03-10 00:39:29 +01:00
Oliver Stöneberg
2c05281a31
ThreadExecutor: refactoring in preparation of sharing code ( #4870 )
2023-03-09 20:08:39 +01:00
Oliver Stöneberg
30131837b5
refs #11603 - deprecated `--enable=information` implicitly enabling `missingInclude` ( #4865 )
2023-03-09 20:04:20 +01:00
Oliver Stöneberg
87d9c8fbc5
fixed #9590 - ProcessExecutor: read the process pipe until we have all the expected data / greatly improved error handling ( #4859 )
2023-03-07 12:25:49 +01:00
Oliver Stöneberg
d17e804235
made `CmdLineParser::mSettings` a reference ( #4855 )
2023-03-07 12:11:21 +01:00
Oleksandr Redko
0719a57ca8
cli: correct typo in help message ( #4862 )
2023-03-06 11:25:07 +01:00
Oliver Stöneberg
ad6c5d80ff
removed unused `ErrorLogger::reportInfo()` / small `*Executor` cleanup ( #4852 )
2023-03-04 17:29:34 +01:00
Daniel Marjamäki
340baf10cd
Adjust version 2.11.99 => 2.10.99 ( #4851 )
2023-03-04 17:19:31 +01:00
Oliver Stöneberg
a00b6e1f8a
simplified `ThreadExecutor` class by moving some code out of it / fixed some thread safety issues ( #4849 )
2023-03-04 12:05:17 +01:00
Oliver Stöneberg
7fd4118d60
Fix #10039 (integrate `--check-config` include findings with normal analysis) / also fixes #11283 ( #3229 )
2023-03-04 09:02:35 +01:00
Oliver Stöneberg
0ec2d84f1a
optimized suppression lookups a bit when no suppressions exist ( #4839 )
2023-03-03 18:37:09 +01:00
Oliver Stöneberg
5af6ca6637
made `Platform` a member of `Settings` instead of inheriting from it / cleanups ( #4791 )
2023-03-03 18:36:27 +01:00
Oliver Stöneberg
b70e1d5461
avoid some unchecked pointer dereferences ( #4811 )
2023-03-02 22:05:41 +01:00
Oliver Stöneberg
bd1ae69b00
cleaned up includes based on `include-what-you-use` ( #4599 )
2023-03-02 21:50:14 +01:00
Oliver Stöneberg
8f5f06add7
some `Tokenizer` construction and related other cleanups ( #4799 )
2023-03-02 21:48:14 +01:00
Oliver Stöneberg
a846bc2d99
added precompiled header for `cli` ( #4779 )
2023-02-08 21:11:11 +01:00
Oliver Stöneberg
8ef14dad98
fixed and enabled `performance-faster-string-find` clang-tidy warning ( #4769 )
2023-02-08 21:01:51 +01:00
Oliver Stöneberg
14e78e1800
greatly improved error handling in Cppcheck project file parsing / some cleanups ( #4752 )
2023-02-08 20:30:43 +01:00
Oliver Stöneberg
1a460d7bc0
bumped version to 2.11 ( #4751 )
2023-01-29 15:18:22 +01:00
Daniel Marjamäki
464fbe8d53
Update copyright year
2023-01-28 10:16:34 +01:00
Oliver Stöneberg
f16ffd88e9
deprecate non-`native` platform being used by default in Windows builds ( #4734 )
...
* deprecate non-`native` platform being used by default in Windows builds
* test-helloworld.py: avoid deprecation warnings
2023-01-27 10:46:48 +01:00
Oliver Stöneberg
fd15811215
de-coupled `--check-library` from `information` severity and other dependencies ( #3861 )
2023-01-26 22:28:04 +01:00
Oliver Stöneberg
a0b1285f4a
added CMake option `BUILD_CORE_DLL` to build lib as `cppcheck-core.dll` with Visual Studio ( #4733 )
2023-01-26 22:13:07 +01:00
Oliver Stöneberg
e5572835c0
fixed `platforms` lookup / set proper platform type for `unix32-unsigned` and `unix64-unsigned` / copy `platforms` in CMake ( #4464 )
2023-01-26 22:05:40 +01:00
Oliver Stöneberg
41849b1a78
generate `*.vcxproj` file lists with `dmake` ( #4652 )
2023-01-21 11:55:36 +01:00
Oliver Stöneberg
38abeccd24
added command-line option `--disable=<id>` to disable individual checks ( #4712 )
2023-01-21 10:39:44 +01:00
chrchr-github
50d297b309
Enable useStlAlgorithm in selfcheck ( #4725 )
2023-01-17 20:48:26 +01:00
Oliver Stöneberg
124668979c
replaced some `std::ostringstream` usage with `std::to_string()` ( #4719 )
2023-01-16 22:05:33 +01:00
Oliver Stöneberg
0c95971c54
added .gitattributes and normalized files ( #4668 )
2022-12-30 21:33:45 +01:00
Oliver Stöneberg
d3a2cdc26c
converted (undocumented) define `MAXTIME` into (undocumented) command-line options `--checks-max-time=`, `--template-max-time=` and `--typedef-max-time=` ( #4661 )
2022-12-30 21:21:05 +01:00
Oliver Stöneberg
1cfe49e340
use `const_iterator` where possible ( #4662 )
2022-12-30 15:13:47 +01:00
Oliver Stöneberg
b380fd2589
added command-line option `--valueflow-max-iterations` to control amount of valueflow iterations / also log debug warning when iterations are being exceeded ( #4557 )
2022-12-20 20:51:08 +01:00
Oliver Stöneberg
3c68b9b29f
use `cbegin()` and `cend()` with `const_ierator` loops ( #4658 )
2022-12-20 20:32:16 +01:00
Oliver Stöneberg
2cd8bb94e4
some small `CmdLineParser` cleanups and improvements ( #4654 )
2022-12-19 22:28:36 +01:00
Oliver Stöneberg
29e0133cb5
extracted `FwdAnalysis` from `astutils.{cpp|h}` ( #4637 )
...
* added missing filtering offiles in Visual Studio project
* extracted `FwdAnalysis` from `astutils.{cpp|h}`
2022-12-13 22:29:23 +01:00
Oliver Stöneberg
40a69e5afb
optimized deserializing of `ErrorMessage` and related main process code ( #4610 )
2022-12-09 19:34:51 +01:00
Oliver Stöneberg
4103d05c7f
improved `ErrorMessage::deserialize()` error messages ( #4617 )
2022-12-07 18:00:45 +01:00
Oliver Stöneberg
7d3ce62ee9
improved errorhandling related to deserializing `ErrorMessage` ( #4604 )
2022-12-03 15:44:33 +01:00
Daniel Marjamäki
c26a8fb4ce
Fixed #11395 (Cant exclude file)
2022-11-24 13:45:57 +01:00
Daniel Marjamäki
ad8c1e26f0
dump: output language to dumpfile
2022-11-20 12:30:09 +01:00
Daniel Marjamäki
e8606a5e5a
let --premium=misra-c-2012 also set --addon=misra. changed addons container to a set
2022-10-31 15:04:16 +01:00
chrchr-github
3273e51fd5
Fix #10412 FN useStlAlgorithm with iterators ( #4157 )
2022-10-16 13:46:26 +02:00
Daniel Marjamäki
8686997292
Add experimental option --performance-valueflow-max-time=T
2022-10-04 14:02:55 +02:00
Oliver Stöneberg
cff1cd9cda
applied clang-tidy `misc-const-correctness` fixes for POD types, iterators and references ( #4529 )
...
* applied `misc-const-correctness` fixes for POD types and iterators
* applied `misc-const-correctness` fixes for references
2022-10-02 07:12:40 +02:00
Oliver Stöneberg
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
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
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
Oliver Stöneberg
76d1b9f31a
avoid unnecessary copies with `emplace_back()` ( #4450 )
...
* avoid unnecessary copies with `emplace_back()`
* cmdlineparser.cpp: suppress `accessMoved` selfcheck false positives
2022-09-10 11:25:15 +02:00
Oliver Stöneberg
433293b9ab
added missing version bumps to 2.10 ( #4420 )
2022-09-09 21:02:04 +02:00
Oliver Stöneberg
dbc05da356
fixed some clang-tidy warnings ( #4435 )
2022-09-08 20:01:41 +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
Daniel Marjamäki
253c764a0c
runformat
2022-09-03 17:30:17 +02:00
Daniel Marjamäki
01b3b4cd0c
cmdlineparser: fixed append of premium options
2022-09-03 12:21:55 +02:00
Daniel Marjamäki
77e32f457a
manual: point at open source / premium manual
2022-09-02 18:10:23 +02:00
Daniel Marjamäki
35fba07910
cli: updated help text formatting
2022-08-25 22:35:53 +02:00
Daniel Marjamäki
94322d6e0a
update --help output. sort options alphabetically. remove some old options.
2022-08-24 08:54:47 +02:00
Daniel Marjamäki
8c0dfea472
cli: if cppcheck premium edition is executed then allow a special option --premium=<option> also
2022-08-24 08:48:12 +02:00
Oliver Stöneberg
1202efb438
some `--exception-handling` related improvements ( #4368 )
2022-08-20 20:54:31 +02:00
Oliver Stöneberg
16f598c409
added missing `sstream` includes ( #4381 )
2022-08-19 10:16:23 +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
Oliver Stöneberg
156323c95e
avoid unnecessary copies with `insert()` ( #4323 )
2022-08-07 19:31:16 +02:00
chrchr-github
36d98a8b5a
Fix #11196 Enable use of getloadavg() on Cygwin ( #4313 )
2022-07-30 14:56:35 +02:00
Rikard Falkeborn
cfa5cd4849
CERT addon removal cleanup ( #4322 )
...
* cmdlineparser: Update addon example to misra
* gui/help: Remove reference to CERT
* manual: Remove reference to CERT
2022-07-29 16:46:36 +02:00
Oliver Stöneberg
efaaa58896
fixed some `modernize-use-emplace` false negatives and some `bugprone-assignment-in-if-condition` warnings ( #4311 )
2022-07-28 22:53:59 +02:00
Oliver Stöneberg
b2f15fdbb1
reduced padding in some classes/structs ( #4295 )
2022-07-24 10:17:11 +02:00
Oliver Stöneberg
f644938eb0
fixed Cppcheck version ( #4292 )
2022-07-19 20:42:19 +02:00
Daniel Marjamäki
db155a59c1
Tokenizer: remove simplifyTokenList2
2022-07-18 16:20:36 +02:00
chrchr-github
21d992cc00
Fix crash on Windows with -j option ( #4229 )
...
* Fix crash on Windows with -j option
* Disable CI-cygwin workflow
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Try to fix Cygwin build
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Update CI-cygwin.yml
* Cygwin uses THREADING_MODEL_FORK
* Restore workflows
* Remove comment
* Fix dmake
* Fix #11179 FP invalidFunctionArgStr
* Revert "Fix #11179 FP invalidFunctionArgStr"
This reverts commit dd5d3e67c6
.
2022-07-13 13:46:03 +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
Oliver Stöneberg
aea4fd1068
some `TestSuppressions` improvements and cleanups ( #4271 )
2022-07-12 17:36:36 +02:00
Oliver Stöneberg
c9c1f83a69
use `emptyString` more consistently ( #4034 )
2022-07-10 10:57:29 +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
Oliver Stöneberg
b51aea5531
separated process execution code into `ProcessExecutor` ( #4249 )
2022-07-08 16:42:57 +02:00
Daniel Marjamäki
d1812c8022
Cppcheck: Write product name if provided in xml output
2022-07-07 17:35:13 +02:00
orbitcowboy
650f4099d2
Fixed wrong XML tree traversal when rules are parsed.
2022-06-22 08:46:48 +02:00
orbitcowboy
10c7c70970
Activated 'make validateRules' and improved rule XML file parsing. Now, it optionally accepts '<rules>...</rules>' tags to make xmllint happy.
2022-06-22 00:03:18 +02:00
PKEuS
d20ea41325
Refactorization: Removed compatibility hacks for outdated or non-conformant compilers ( #4186 )
...
Merged from LCppC.
2022-06-08 15:16:01 +02:00
Oliver Stöneberg
412054e83a
enabled and mitigated `misc-unused-using-decls` clang-tidy warnings ( #3543 )
2022-06-04 16:39:25 +02:00
Oliver Stöneberg
d36e05af28
enabled and fixed `modernize-use-emplace` clang-tidy warnings ( #4165 )
...
* enabled and fixed `modernize-use-emplace` clang-tidy warnings
* avoid unnecessary creation of temporaries in `emplace_back()` calls
2022-06-03 15:09:29 +02:00
Daniel Marjamäki
1f6554e2e8
Update copyright year
2022-05-21 12:18:27 +02:00
Martin Delille
6f597091a4
Handle exename on macos ( #4071 )
2022-05-08 13:57:42 +02:00
Oliver Stöneberg
5e6cc1053a
small `ErrorLogger` usage cleanups ( #4033 )
2022-04-21 21:30:22 +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
Oliver Stöneberg
ce369c5122
added/adjusted --xml-version documentation ( #4032 )
2022-04-21 09:11:59 +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
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
Oliver Stöneberg
a98346bbe0
generate a program database in all Visual Studio configurations ( #3996 )
2022-04-11 11:28:07 +02:00