1.4.37. Migration to 7.5.3

1.4.37.1. Command-line switch -j

The command-line switch -j (for parallel execution) has been unified amongst the Python-based tools like axivion_ci, axivion_analysis, and the build tools build_cbp, build_compile_commands, build_cproject, build_ewp, build_gpj, build_uvproj, and build_uvprojx.

Previously, some tools allowed for -j alone (which means use all cores) and other tools allowed for -jN where one had to specify the level of parallelization. Since version 7.5.1 both is possible for all tools, however with a limitation of how -j can be used due to the way Python argparse works, which came only apparent now and may lead to a regression since 7.5.1 depending on the way the arguments are ordered on the command line: You can only use -j (without an integral argument) as last switch on the command-line or in front of another switch, but not directly in front of a positional argument like a filename. E.g. the following is invalid usage:

build_compile_commands --exclude "*/generated/*" -j compile_commands.json
build_ewp --config Debug -j project.ewp
build_gpj --make gmake --target main -j project.gpj
build_uvprojx --output_dir_prefix axivion_out -j project.uvprojx

Whereas the following is valid usage:

build_compile_commands --exclude "*/generated/*" compile_commands.json -j
build_ewp -j --config Debug project.ewp
build_gpj --make gmake --target main -j -- project.gpj
build_uvprojx --output_dir_prefix axivion_out -j8 project.uvprojx

1.4.37.2. Stylecheck

CertC-STR32, CertC++-STR32, SecureCoding-5.31

The scope of the rules has been extended: they now report more cases where a possibly not-null-terminated string is passed to a library function, by using results from semantic analysis. This might lead to the reporting of false positives. The old behavior of the rules, a purely syntactic check of a restricted set of cases, can be restored by setting their config option use_static_semantic_analysis to false.

CertC-STR34, CertC++-STR34

Character constants with a value between 0 and 127, i.e. ASCII characters, are no longer wrongly reported as these values can be safely converted to unsigned characters.