Commit Graph

27606 Commits

Author SHA1 Message Date
Daniel Marjamäki 9dd729e9be
Fixed #12228 (GUI: Compliance report for Misra C 2012 is not working properly) (#5709) 2023-11-29 16:13:01 +01:00
Swasti Shrivastava db66105128
Fix #10854: False positive: misra-c2012-9.2: inner union (#5693) 2023-11-27 18:28:53 +01:00
Oliver Stöneberg a8eb971670
CI-unixish.yml: removed usage of qmake from selfcheck (#5531)
We deprecated qmake so we should no longer use it ourselves.
2023-11-27 12:06:33 +01:00
Oliver Stöneberg a937862a5d
CmdLineParser: return enum from `parseFromArgs()` instead of using additional member (#5698) 2023-11-27 12:06:03 +01:00
Oliver Stöneberg 5fed6e7dd9
json.h: suppress `-Wzero-as-null-pointer-constant` Clang warning (#5701) 2023-11-27 11:16:20 +01:00
Oliver Stöneberg d1b42d0771
fixed #12056 - qt.cfg: implemented `Q_OBJECT` to get rid of `symbolDatabaseWarning` in selfcheck (#5533) 2023-11-26 14:42:11 +01:00
Oliver Stöneberg f2461781fd
added `xml.h` wrapper for TinyXML2 / cleaned up suppressions of Clang compiler warnings (#5700) 2023-11-26 14:04:35 +01:00
chrchr-github 42a64d4d39
Fix #12218 syntaxError with typedef in namespace (#5694) 2023-11-25 22:59:51 +01:00
chrchr-github 33981fe42c
Fix #12214 FN constParameterReference / #12216 FP constParameterReference (#5691) 2023-11-25 22:58:16 +01:00
chrchr-github c1f6132745
Fix #12219 FP constParameterCallback for template argument (#5695) 2023-11-25 22:57:07 +01:00
Oliver Stöneberg 1d3f9beb21
CppCheckExecutor: do not modify settings after they were passed to `CppCheck` (#5697) 2023-11-25 22:07:49 +01:00
Oliver Stöneberg 8e1ae7e412
CmdLineParser: various refactorings and cleanups as well as testing improvements (#5676) 2023-11-25 21:12:24 +01:00
Oliver Stöneberg 86bb7c98e4
enabled and mitigated `readability-const-return-type` clang-tidy warnings (#5644) 2023-11-24 18:45:48 +01:00
chrchr-github 331db40d3b
Revert recent changes in checkConstVariable(), add tests (refs #12203) (#5696) 2023-11-22 19:20:56 +01:00
chrchr-github 83b5cb5b2f
Fix #12203 false negative: constParameterReference when taking address (#5682) 2023-11-22 14:05:53 +01:00
Daniel Marjamäki 727d086dc4
Fix #12217 (misra 11.4: report conversion in macro) (#5692) 2023-11-22 12:47:48 +01:00
Oliver Stöneberg 693702d98d
compilerDefinitions.cmake: fixed faulty `add_compile_definitions()` value for MSVC (#5690)
also fixes `<command line>(7,9): error : macro name must be an
identifier` with `clang-cl` allowing the build to complete
2023-11-22 11:02:35 +01:00
chrchr-github 8b6cbe2e9e
Fix crash in SymbolDatabase::addClassFunction() (f'up to #12209) (#5689) 2023-11-21 12:57:38 +01:00
Oliver Stöneberg 2b61c9ef2f
Tokenizer: moved `VariableMap` into anonymous namespace (#5686) 2023-11-21 11:35:17 +01:00
chrchr-github f5630e7049
Fix #12209 "debug: Executable scope 'x' with unknown function." with anonymous namespace (#5688) 2023-11-20 22:28:38 +01:00
chrchr-github f9521cfb4e
Fix #12208 FN constParameterReference with nested struct/class (#5685) 2023-11-20 22:01:22 +01:00
andymacg f444696d5c
Fix #12198: Expect function pointers in Misra 17.7 check (#5675) 2023-11-20 20:19:20 +01:00
chrchr-github d09a6514cd
Fix #11012 FP unassignedVariable when passed in init list (#5684) 2023-11-20 19:43:29 +01:00
chrchr-github d7c7a39afe
Fix crash in CheckLeakAutoVar (f'up to #12186) (#5683) 2023-11-20 18:26:05 +01:00
Daniel Marjamäki 036df0aca9
Fix #12181 (Suppressions: allow that id with * is added) (#5681) 2023-11-20 11:54:41 +01:00
Oliver Stöneberg 3bafe164a3
enabled some clang-tidy warnings for non-GUI code (#5679)
There are some clang-tidy warnings which cannot properly handle the
extensions used in the Qt code so the produce lots of false positives
and were previously enabled. With clang-tidy now offering the
possibility to inherit the parent configuration we can enable these
across the project and simply disable them for the GUI code.

No additional warnings were found as they were already fixed in earlier
commits without enabling the checks in question.
2023-11-20 10:06:46 +01:00
Oliver Stöneberg 92c089d4ad
fixed some "Parameter can be made pointer/reference to const" Rider warnings (#5680) 2023-11-20 07:23:45 +01:00
chrchr-github cd21918520
Fix FP memleak with outparam allocation (f'up to #12186) (#5677)
I wonder if it is worth trying to get this right. We also have FPs when
the return value is assigned to a variable, and that seems much harder
to fix.
2023-11-19 19:51:32 +01:00
Oliver Stöneberg 4addad1643
moved settings-related code from `CppCheckExecutor` to `CmdLineParser` (#5672)
`CppCheckExecutor` contains some code which is not related to the
execution but actually to the creation of the settings. This is causing
inconsistencies in the error handling/logging as well as interfering
with the testability.
2023-11-19 19:45:10 +01:00
Daniel Marjamäki 56c7ac3771
Fix #12182 (speedup valueFlow by only running valueFlowNumber once) (#5678) 2023-11-19 18:56:48 +01:00
chrchr-github 61bd8fddbf
Partial fix for #11469 FP mismatchingContainerExpression warning (#5674) 2023-11-17 17:12:38 +01:00
chrchr-github 3e47acd580
Fix FP memleak (f'up to #12186) (#5671) 2023-11-16 18:35:32 +01:00
chrchr-github 4b9f3c68fb
Fix #12188 FN uninitvar with increment of struct member (#5665) 2023-11-16 18:11:12 +01:00
chrchr-github 831aec5c03
Fix #12185 FN constVariablePointer with stream (#5659) 2023-11-16 17:43:20 +01:00
Daniel Marjamäki e01e090f1c
Fix #10866 (no preprocessorErrorDirective and code generated in case of unconditional #error) (#5670) 2023-11-16 17:25:49 +01:00
Oliver Stöneberg e47300016b
moved some classes/structs into anonymous namespace (#5669) 2023-11-16 15:49:41 +01:00
chrchr-github 63a5a71c20
Fix #12186 FN memleak with outparam allocation (#5661) 2023-11-16 15:23:40 +01:00
Oliver Stöneberg 9cf0342f9d
optimized `ProgramMemory` a bit (#5668)
Scanning `common/file.c` of the `xrdp` project with `--force --std=c11
--std=c++11 --inline-suppr --enable=warning`:

Clang 16 `4,208,373,435` -> `4,156,024,955`
GCC 13 `4,336,042,153` -> `4,277,293,971`
2023-11-16 14:35:25 +01:00
chrchr-github 85172fe770
Don't report checkLibraryUseIgnore for known functions (refs #7719) (#5664) 2023-11-16 14:23:08 +01:00
Swasti Shrivastava 1ce901385a
Fix #12172:False positive: misra-11.1 function pointer assigned to array (#5667) 2023-11-16 13:57:27 +01:00
Oliver Stöneberg 682901ac2a
fixed #10760 - added file name to ValueFlow `--debug` output (#5655) 2023-11-16 13:44:50 +01:00
Oliver Stöneberg 8b69ccadd4
CppCheckExecutor: extracted logging instance related code into separate implementation class (#5658) 2023-11-16 10:35:43 +01:00
Swasti Shrivastava 81a03e7341
Fix #12184: false positive: misra 11.6, cast expression '0U' to 'void*' (#5666) 2023-11-16 09:06:58 +01:00
Daniel Marjamäki ae3f7bd800
Fixed #12187 (Windows build GUI with cmake) (#5662) 2023-11-15 16:56:46 +01:00
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