v6.24.1
🌟 Highlights
Standard library handling change
GCC has implicit include paths that are forwarded to Clang. Until now these paths were added with -isystem
flag, but sometimes the priority of this is too high: https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html The implicit include paths should be searched the last, so -isystem
has been changed to -idirafter
.
In case of potential backward compatibility break --add-gcc-include-dirs-with-isystem
has been introduced for "CodeChecker analyze" command which reverts this change.
ld_logger
environment change
CodeChecker log
command uses the LD_PRELOAD
environment variable for collecting the build commands. This environment variable relies on LD_LIBRARY_PATH
which tells where to find the .so
file set in LD_PRELOAD
. Some build systems overwrite the value of LD_LIBRARY_PATH
and for this reason CodeChecker fails to collect build commands. A solution to this problem was to fill LD_PRELOAD
with an absolute path. However, this solution doesn't work when the analyzed project is built for multiple target architectures (e.g 32 and 64 bits), since CodeChecker sets a single absolute path based on the host architecture.
If the project's build system is resetting LD_LIBRARY_PATH
, then the workaround solution is to extend LD_LIBRARY_PATH
with the proper ldlogger.so
file: For further details consult this documentation.
Enable checkers by group prefix
Checkers can be enabled by providing a group prefix. For example, cplusplus.NewDeleteLeaks
can be enabled by --enable cplusplus
. The problem was that checkers are enabled by any name prefix, so this former checker is also enabled by cplusplus.NewDelete
which is not an intended behavior. This release fixes this issue.
Also, it was possible to enable checkers by suffix (e.g. --enable NewDeleteLeaks
). As of this release, the suffix matching is not checked either.
💻 CLI/Server improvements
- [fix] Don't reset PATH in Cppcheck plugin #4320
- [feat] Implicit include paths added with -idirafter #4315
- Revert "[analyzer] Use absolute path to logger.so in LD_PRELOAD" #4314
- [cmd] Checker name prefixes are meant along separator characters #4311
- Analyzer binary dependent environment #4305
- [fix] Support joker characters at annotation filter #4306
- [Fix] Report sorting in unique mode #4294
- [fix] Don't enable checkers by suffix #4307
- [fix] Minor fixing for statistics tabs #4304
- [fix] Error when debug logging skipped actions #4301
- [fix] Don't capture cc1 by the logger. #4300
- Add -mmitigate-rop to ignored options #4295
- [analyzer] Ignore -fno-printf-return-value #4329
- [fix] Disable clang-diagnostic-error checker #4325
- [fix] Missing analyzer error #4330
- [fix] Forwarding --ctu-ast-mode to analyze command #4341
- Environment initialization for binaries #4337
🌳 Environment
- [cfg] Add setuptools as a dependency #4285
- Deprecate distutils #4286
- Bump urllib3 from 2.2.1 to 2.2.2 in /scripts/labels/label_tool #4290
- [cfg] Upgrade to pylint 3.2.4 #4279
- [analyzer] Adds -fno-freestanding to ignored GCC compiler flags #4281
- [cfg] Upgrade pycodestyle to 2.12.0 #4264
- [cfg] Upgrade lxml version #4262