Commit Graph

27562 Commits

Author SHA1 Message Date
Oliver Stöneberg d3a8eb1ae2
config.h: improved and cleaned up some preprocessor checks (#5663) 2023-11-15 15:31:12 +01:00
Oliver Stöneberg e7f8985173
disabled some expensive and/or unnecessary clang-tidy checks (#5660)
Running clang-tidy with `--enable-check-profile` provides an overview of
the run-time of each check. This revealed some checks which take a
considerable amount of time which could be disabled.

Here's the times for the checks in question. The times are very similar
across most files:
```
   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
...
   0.4531 (  4.7%)   0.3906 (  6.1%)   0.8438 (  5.2%)   0.8127 (  5.1%)  misc-unused-using-decls
...
   0.3281 (  3.4%)   0.2344 (  3.7%)   0.5625 (  3.5%)   0.4509 (  2.8%)  modernize-macro-to-enum
...
   0.2188 (  2.2%)   0.2031 (  3.2%)   0.4219 (  2.6%)   0.3621 (  2.3%)  modernize-use-nullptr
```
2023-11-15 11:24:25 +01:00
chrchr-github 3bd5a034bd
Fix #12176 false positive: unassignedVariable (#5656) 2023-11-14 12:26:12 +01:00
chrchr-github 6ac804d209
Fix #12178 extern "C++" scope generates valueflow (#5654) 2023-11-14 10:02:41 +01:00
Oliver Stöneberg 9228b9e424
iwyu.yml: fixed `include-what-you-use` job / cleaned up includes (#5657)
As usual when the base clang version of a distro changes iwyu ends up
broken and needs additional packages and/or options applied to work
again.
2023-11-13 23:24:06 +01:00
Stefan van Kessel d3520943ad
Minor: fix msvc warning "not all control paths return a value" (#5650)
When building with /Od - default cmake debug build for me, the
__assume(false); trick does not work to get rid of the C4714 warnings

https://godbolt.org/z/a6xGnfP7d

D:\tmp\cppcheck\lib\keywords.cpp(205): warning C4715:
'Keywords::getOnly': not all control paths return a value
D:\tmp\cppcheck\lib\keywords.cpp(226): warning C4715:
'Keywords::getOnly': not all control paths return a value
D:\tmp\cppcheck\lib\keywords.cpp(168): warning C4715:
'Keywords::getAll': not all control paths return a value
D:\tmp\cppcheck\lib\keywords.cpp(188): warning C4715:
'Keywords::getAll': not all control paths return a value

Proposed fix: also define NORETURN to [[noreturn]] when according to
__has_cpp_attribute [[noreturn]] is supported
https://en.cppreference.com/w/cpp/feature_test

(For previous discussion see also
https://github.com/danmar/cppcheck/pull/5497)
2023-11-12 17:30:06 +01:00
orbitcowboy b201ef26cb
windows.cfg: Improved configuration of OpenThread() (#5653) 2023-11-12 11:37:29 +01:00
chrchr-github a6b7a8c1cc
Fix #12170 FP knownPointerToBool with function pointer (#5646) 2023-11-12 10:20:18 +01:00
chrchr-github 212d2141d3
Fix #12173 FP danglingTempReference with loop over init list (#5652) 2023-11-12 10:19:45 +01:00
orbitcowboy f4df28d5ec
windows.cfg: Improved configuration for OpenProcess(). (#5651) 2023-11-11 14:08:21 +01:00
chrchr-github 2d232dcaac
Fix varid0 with rvalue reference typedef (#5649) 2023-11-11 10:09:08 +01:00
chrchr-github 328daeceb4
Fix #11334 debug: varid0 with anonymous union (#5648) 2023-11-11 10:01:03 +01:00
Daniel Marjamäki 282c195a6f
Fix #12169 (False positive: wrong misra-config variable with accessing object in memory) (#5645) 2023-11-09 12:25:42 +01:00
Oliver Stöneberg b0cde34d1a
refs #12167 - moved ordering of markup files into shared code / removed related test cases from executor tests (#5642)
This is not completely fixing the issue yet. `test-qml.py` still fails
when using multiple threads.
2023-11-09 10:17:30 +01:00
chrchr-github d24074f7b1
Fix #12166 debug: varid0 with reference typedef (#5643)
Why do we even split any declarations in the first place?
2023-11-09 10:11:34 +01:00
Daniel Marjamäki 780b742568
Fix #12165 (simplifyTypedef: the "enum" token is not inserted) (#5641) 2023-11-09 07:48:33 +01:00
chrchr-github 30bf5cac0a
Partial fix for #12162 false negative: functionConst (#5639) 2023-11-08 22:37:45 +01:00
Daniel Marjamäki 8f432880fa
Fix #12164 (False positive: operator precedence warning even though there are parentheses) (#5640) 2023-11-08 18:54:40 +01:00
Daniel Marjamäki 617b7a39cd
Fix #12163 (misra.py: crashes when ctu-info line does not have certain attributes) (#5638) 2023-11-08 15:23:50 +01:00
chrchr-github 1fa785d81d
Fix #12159 FP CastAddressToIntegerAtReturn with std::future (#5634) 2023-11-08 13:12:50 +01:00
Oliver Stöneberg f61003d954
scriptcheck.yml: make dmake a separate job and run it on multiple platforms (#5632)
This is essentially an unit test for the `FileLister` so we should make
sure we have proper coverage.
2023-11-08 09:29:40 +01:00
Oliver Stöneberg 2a15428096
fixed #12059 - added `--fsigned-char` and `--funsigned-char` command-line options (#5580) 2023-11-08 09:28:33 +01:00
chrchr-github cf64ccea22
Fix #12147 false negative: passedByValue (#5626) 2023-11-07 22:50:31 +01:00
Oliver Stöneberg bc174c502a
fixed #12145 - provided order of source files is not preserved (#5625) 2023-11-07 21:21:24 +01:00
Daniel Marjamäki 8c63c8ced1
Fix #12156 (AST: do not create AST for variable declaration 'bool& var') (#5631) 2023-11-07 20:48:56 +01:00
Oliver Stöneberg 87886576fc
TokenList: actually consider configured standard in `isKeyword()` (#5619) 2023-11-07 20:39:44 +01:00
chrchr-github d3d70dcc4e
Fix #12157 SymbolDatabase: Token::type() is not set properly when inn… (#5635)
…er enum has same name as outer class
2023-11-07 19:57:45 +01:00
Daniel Marjamäki c1aed9681d
Fix #12151 (Tokenizer::arraySize: enum constant used as index in array initialization) (#5633) 2023-11-07 19:19:19 +01:00
chrchr-github 13e74507dd
Update releasenotes.txt [skip ci] (#5636) 2023-11-07 15:11:41 +01:00
chrchr-github d26022ac9a
Fix #11302 debug: SymbolDatabase::isFunction found C function 'main' without a return type. (#5630) 2023-11-06 21:03:11 +01:00
chrchr-github a57fc9ace6
Partial fix for #12153 FN returnReference (#5629) 2023-11-06 20:29:13 +01:00
Oliver Stöneberg 704b862a2d
cleaned up the file filtering code and improved testing of it (#5622) 2023-11-06 19:06:22 +01:00
chrchr-github de2cfb05b0
Fix #12150 FP uninitialized member array, initialized in range for loop (#5627) 2023-11-06 16:15:47 +01:00
Daniel Marjamäki fc8c244675
CI: Add selfcheck using Cppcheck Premium. Activates Misra C++ 2008 and Cert C++ 2016 checkers. (#5623) 2023-11-06 15:31:47 +01:00
chrchr-github 83ac6bfa0f
Fix crash when calling estimateSize() (f'up to #12139) (#5628) 2023-11-06 15:22:59 +01:00
orbitcowboy 966a89d5f4
Removed -DTIXML_USE_STL flag (#5624)
Updated version of https://github.com/danmar/cppcheck/pull/5145
2023-11-05 15:54:22 +01:00
Daniel Marjamäki 0dc53ac7fe
Fix #12144 (Error messages from addons has the wrong file0) (#5621) 2023-11-04 17:07:30 +01:00
chrchr-github 72a36172aa
Fix #12142 FP uninitStructMember, unreadVariable with pointer to member (#5618) 2023-11-04 13:40:06 +01:00
chrchr-github fa7891e37b
Fix #12139 FP redundantCopyLocalConst for small type (#5617) 2023-11-04 13:38:02 +01:00
chrchr-github 789c032e42
Fix #12138 FP passedByValue with anonymous union (#5611) 2023-11-04 13:34:08 +01:00
Oliver Stöneberg df860a937d
do not explicitly load `windows.cfg` during command-line parsing (#5613)
As we now fail early on loading of all libraries we no longer need to
explicitly bail out on mandatory ones. This would have also caused
`libraries` and `library` to go out-of-sync and possibly lead to
duplicated loading of the library. It also allows for a
`CppCheckExecutor` to be made private.
2023-11-04 13:33:10 +01:00
Oliver Stöneberg ca6d1aafdb
moved `fileSettings` out of `Settings` (#5608)
Moved the `FileSettings` out of the `Settings` and pass them around
explicitly. They can never be specified at the same time and are used
exclusively. The code hasn't been fully adjusted to reflect this as this
is only the refactoring without any functional changes.
2023-11-03 23:24:04 +01:00
Oliver Stöneberg 8b0916c319
ValueFlow: improved `checkLevelNormal` message (#5584) 2023-11-03 21:05:56 +01:00
Oliver Stöneberg 989d276dde
removed the need for `Check` object in `CTU::getUnsafeUsage()` callback / some CheckUninitVar cleanups (#5610)
The `Check` objects were just created for that purpose so they basically
just were wrappers for the pointers passed into them and were
unnecessary.
2023-11-03 18:27:11 +01:00
Oliver Stöneberg f62caa6739
updated Qt in CI to 6.6.0 and removed commercial-only LTS Qt versions (#5561)
Updates for the Qt 6.2.x and 6.5.x LTS versions are only being provided
to commercial customers so the latest version is the only feasible one
to use.

Builds with older 6.x versions are still being tested implicitly by
using the Qt versions provided by the various distros.
2023-11-03 18:25:27 +01:00
Daniel Marjamäki 3c863e2e33
bumped simplecpp to 1.0.0 (#5616) 2023-11-03 13:55:54 +01:00
chrchr-github 099d96ffa1
Fix #12137 syntaxError with attribute in typedef (#5612) 2023-11-03 09:56:41 +01:00
Oliver Stöneberg 63e00ea918
fixed some "Variable can be made constexpr" Rider warnings (#5615) 2023-11-03 09:55:44 +01:00
Oliver Stöneberg 9280b5d7a5
CI-unixish.yml: removed `macos-11` builds and no longer build with qmake on MacOS (#5614)
Removed all `macos-11` builds as `brew` no longer supports it and we use
it in most steps:
```
Warning: You are using macOS 11.
We (and Apple) do not provide support for this old version.
It is expected behaviour that some formulae will fail to build in this old version.
It is expected behaviour that Homebrew will be buggy and slow.
Do not create any issues about this on Homebrew's GitHub repositories.
Do not create any issues even if you think this message is unrelated.
Any opened issues will be immediately closed without response.
Do not ask for help from Homebrew or its maintainers on social media.
You may ask for help in Homebrew's discussions but are unlikely to receive a response.
Try to figure out the problem yourself and submit a fix as a pull request.
We will review it but may or may not accept it.
```

Also `brew` might no longer provide pre-built Qt5 packages which will
cause the step to run for hours as it will compile it on demand - see
https://github.com/danmar/cppcheck/actions/runs/6735637341/job/18314354679
for such an instance.
2023-11-02 23:31:59 +01:00
Oliver Stöneberg e6d15b17ff
extracted `FileSettings` from `ImportProject` to `filesettings.h` (#5604) 2023-11-02 17:42:41 +01:00