This release was only available as an integral part of Astrée 16.04.
General improvements
- The new summary report “Rule checks” documents the RuleChecker configuration
(active rules and checks) together with all violations. It can be generated
in batch mode with the option
--report-rulechecks <filename>
or specified in DAX by the element <xml-rulechecks>
.
- Improved support for displays with high dpi values.
- In configuration views (ABI, Options, Rules), new context menu entries
allow to reset settings to their default values.
- Improved location information for alarm messages,
in particular for rule violations. It is now more precise,
reducing possible overlap between code locations with alarms.
- The different rule checking phases now have dedicated
section headers in the analyzer output and text report.
- The New Project wizard now also supports configuring the RuleChecker.
- Simplified configuration of rule checks. The explicit option
rulechecks
has been removed. Instead the RuleChecker
is automatically enabled if the set of rules to check for
is not empty. The computation of code metrics can now
be enabled independently from rule checking using the new option
metrics=yes
.
- The new summary report “Rule checks” documents the RuleChecker configuration
(active rules and checks) together with all violations. It can be generated
in batch mode with the option
--report-rulechecks <filename>
or specified in DAX by the element <xml-rulechecks>
.
- New and better frontend for parsing original (non-preprocessed)
source files for rule checking. It is more robust and no longer
restricts the use of preprocessor directives.
- Descriptive texts for checks and rules, including the official MISRA-C rule
descriptions, are now displayed under “Settings” → “Rules”
as well as under “Findings” → “Details”.
- With the new option
allow-boolean-constants=yes
, the RuleChecker
allows 0
and 1
constants to be used in boolean contexts.
Code like bool_t b = 1;
then passes without violation of the MISRA-C:2004
rule 10.1 or the MISRA-C:2012 rule 10.3.
- Boolean constants introduced as enumerators are now handled as effectively/essentially boolean (MISRA-C:2004/2012)
if they are part of a typedef defining the boolean type.
- Fixed an issue that could cause the RuleChecker to not find the header files
of the C stub library and therefore stop with a parse error.
- Fixed check for violations of customer-specific coding rule X.A.5.19.
MISRA-C:2004
- Added support for rule 20.3.
- The underlying type of the
!
operator is now always Boolean.
- Fixed the reporting of MISRA-C:2004 violations in initializers which caused
violations of rule 10.1 to be reported as violations of rule 10.2 and vice versa.
- Fixed false alarms about rule 10.1 and 11.3 in conjunction with null pointer constants and array accesses.
- Fixed false alarms for check
external-file-spreading
for rule 8.8 related to tentative definitions.
MISRA-C:2012
- Added support for rule D.4.11.
- Added partial support for Directive 4.9.
- Rule 17.3 is now fully supported.
- New option
allow-signed-constant-with-signed=[yes|no]
controls whether the essential type model is relaxed, such that constant
expressions of essentially signed type and non-negative value that
are subject to the usual arithmetic conversions (see ISO/IEC 9899:1999 ยง6.3.1.8)
are considered unsigned, if the other operand is essentially unsigned.
- Fixed false alarms about rule 10.3 in conjunction with explicit casts using predefined types and explicit sign information (signed/unsigned char/short/int etc.).
- Fixed false alarms for check
external-file-spreading
for rule 8.5 related to tentative definitions.
- Fixed false alarms about rule 10.4 and 11.4 in conjunction with null pointer constants and array accesses.
Red Hat support
Red Hat Enterprise 5 is no longer supported. The minimum requirement
is now Red Hat Enterprise 6 (CentOS 6) or compatible distributions.