1.4.25. Migration to 7.7.0¶
1.4.25.1. Compiler¶
The compiler option language_cxx.features.no_parse_templates (previously a boolean)
has been replaced with the option language_cxx.features.parse_templates, an enum
with four possibilities:
automatic (new default)
standard (equivalent to old default behavior with
no_parse_templates=false)deferred
never (equivalent to old behavior with
no_parse_templates=true)
Existing JSON configurations are automatically migrated (no_parse_templates=true->”never”; no_parse_templates=false->”automatic”).
If you are manually specifying --no_parse_templates on the command line,
we recommend that you try switching to the new “deferred” mode.
It preserves more information about the source code in the IR than the “never” mode,
which helps to avoid false negatives in various stylechecks.
Note that the default has switched from “standard” to “automatic”. This change only
impacts permissive Microsoft mode (without /permissive- switch), as otherwise
“automatic” is equivalent to “standard”. This change better emulates the behavior
of the Microsoft compiler.
1.4.25.2. CMakeIntegration¶
The default generator was changed from Unix Makefiles to Ninja. If you
relied on the default settings but want to use Unix Makefiles you have to
configure that explicitly now.
1.4.25.3. IR¶
In the logical IR, the class Adjusted_Parameter was removed.
Such parameters now use class Normal_Parameter instead.
The field Promoted_Type is now available on Normal_Parameter
and replaces the field Adjusted_Parameter.Link_Type.
1.4.25.4. Stylechecks¶
The option exclude_in_macro (which was available on most stylecheck rules)
has been removed.
If you were using this option, consider switching to the less-aggressive extend_exclude_to_macro_invocations instead.
Existing JSON configurations are automatically migrated: if exclude_in_macro was
enabled, "*" will be added to option exclude_in_macros.
This has the same effect as before: ignoring any violations associated with macro expansion.
MisraC++2023¶
Previous MisraC++202x rules have been changed to the upcoming MisraC++2023 rules.
AutosarC++-A7.3.1¶
The rule AutosarC++-A7.3.1 became stricter regarding hidden base methods that only seem to be not hidden via using. The rule will correspond to the upcoming rule MisraC++2023-3.4.2.
AutosarC++-A3.3.2¶
The option allowed_effects_mask has been removed as it was hard to use sensibly.
As a replacement, a new option allowed_effects is provided. Configurations using
allowed_effects_mask have to be updated accordingly.
Out-of-bounds checks¶
Rules checking for accessing an array out-of-bounds, or for doing pointer arithmetic on something that is not an array, have been made more consistent in their reporting in case there are multiple violations at the very same location. This may lead to added and/or removed findings at places where you already got at least one message from these checks; this mostly affects violations for doing pointer arithmetic on some non-array pointer target.
1.4.25.5. StaticSemanticAnalysis¶
Option advanced.use_conditional_value_propagation has been removed as it is no
longer needed. In case you played around with this option, causing an entry in
your configuration files, simply remove any occurrence of it there.
1.4.25.6. Dashboard¶
The web user interface by default now uses the server time zone to display timestamps. Users who access a Dashboard server in a different time zone might want to change their preferences to use the appropriate local time zone again.
1.4.25.7. Python¶
Until now it was possible to start the Python scripts inside the bin folder of
the Axivion Suite with a Python 2.7 interpreter which then invoked the proper Python 3
interpreter. This was possible due to the fact that the Python scripts in bin
kept Python 2.7 syntax compatibility. This constraint has been removed now and Python
scripts inside bin are not guaranteed to have Python 2.7 syntax any more.
It is advisable anyway, not to run the Python scripts from bin folder directly,
but to use their counterparts instead: the executable files (.exe suffix on
Windows) and the shell scripts (without any suffix on GNU/Linux and MacOS). As even on
Windows you can invoke binaries without the .exe suffix, you can just always
use axivion_ci instead of axivion_ci.py or axivion_ci.exe.
1.4.25.8. convert_sln2proj¶
Removed script convert_sln2proj as it is not required any more for quite some time:
MSBuildIntegration supports solutions with ProjectDependencies (solution-level
build-order-dependencies), thereby removing the need for convert_sln2proj.