CodeSonar Release 5.4, patchlevel 0: Release Notes

Official release date: September 14, 2020.



Notes on Upgrading

If you have made changes to any of your CodeSonar configuration files, you will need to upgrade those files as part of the upgrade process.

Windows Installation Notice for Firefox Users

Launching the CodeSonar installer directly from Firefox on Windows 10 may prevent certain parts of the installer from functioning correctly. Instead, download the installer to a suitable location and run it from there.

What's New

Warning Classes There are six new warning classes. This version of CodeSonar uses CWE v4.2.
GUI New page type Usernames
The Compare Analyses feature has been extended.
codesonar get New -o and -follow-redirect options to codesonar get.
New codesonar Subcommands
Library Model Improvements The library models shipped with CodeSonar now include models for FreeRTOS functions.
Hub Moving Instructions Change Due to the PostgreSQL upgrade, the process for restoring a primary hub with pg_restore will differ slightly depending on whether or not the hub backup was created with an earlier CodeSonar version. See Relocating A Primary Hub (Different Machine) for details.
Compiler Model Changes There is a new IAR compiler model iccavr.
There is no longer an armcpp compiler model. All native compilers previously mapped to this model are now mapped to the armcc model.
Several of the models have undergone general improvements and bug fixes.
Third Party Upgrades A number of third party packages shipped with CodeSonar have been upgraded, in particular PostgreSQL, yFiles, and Z3. See the Notices page for information, including version numbers, about all third party components.
HTTP API documentation New pages describing mechanisms for interacting with the hub without utilizing the user interface:
  • HTTP API Reference
  • Specifying Table Configurations
EDG Upgrade CodeSonar now uses EDG version 6.0. This provides better C++17 support (fewer parse errors). There are also some useful new front end options.
API Changes Hash functions have been added to C++ and Python API classes where they were not previously available.
AST Changes A small number of unnormalized C/C++ AST classes have new fields.
Hub Machine Requirements In addition to existing requirements for running a CodeSonar hub, IA-32 processors must support SSE2.
Now supported Windows Server 2019 is newly supported as of this release.
Release Status CodeSonar 5.0p0 is now in sunset.
CodeSonar 4.5p1 is now at end of life.
Deprecation Notices Mac OS X and Solaris will not be supported as of the next CodeSonar release. This is the last release that will include installers for these platforms.

Direct integrations for the following third party Java and C# analysis tools will be removed in the next CodeSonar release. Java and C# analysis will be handled directly by CodeSonar.

  • FindBugsTM (Java)
  • PMD (Java)
  • FxCop (C#)
Java and C# Analysis Notice As of the next CodeSonar release, the Java and C# analysis capability currently provided by separate tool Julia will become part of the CodeSonar product.

Details

Warning Classes

This version of CodeSonar uses CWE v4.2 (released August 20, 2020).

There are six new warning classes

New Warning Class Mnemonic Notes
C-style Cast LANG.CAST.CSTYLE Supports MisraC++2008:5-2-4.
Float Pointer Conversion LANG.CAST.PC.FLOAT Supports MisraC++2008:3-9-3.
Function-Like Macro LANG.PREPROC.FUNCMACRO Supports MisraC++2008:16-0-4.
Member Function Could Be const LANG.TYPE.MFCBCONST Supports MisraC++2008:9-3-3.
Member Function Could Be static LANG.TYPE.MFCBSTATIC Supports MisraC++2008:9-3-3.
Variable Could Be const LANG.TYPE.VCBC Supports MisraC++2008:7-1-1.

EDG Upgrade

CodeSonar now uses EDG version 6.0.

There are new front end options available:

API

Hash functions have been added to C++ and Python API classes where they were not previously available.

API Implementation
C++ Python C
ast_field_not_found_error::hash() ast_field_not_found_error.__hash__() not implemented
ast_pattern::hash() ast_pattern.__hash__() not implemented
ast_pattern_compilation_error::hash() ast_pattern_compilation_error.__hash__() not implemented
step_path::hash() step_path.__hash__() not implemented
step_xform::hash() step_xform.__hash__() not implemented
warning::hash() warning.__hash__() not implemented

AST Changes

A small number of unnormalized C/C++ AST classes have new fields. There are no other AST changes in this release.

Modified Class Changes
cc:cast new attribute :cast-kind
cc:range-based-for new child :initialization
cc:switch new attribute :exhaustive-switch

Customer Tickets Fixed

NUMBER NAME NOTES
6659 Add instructions to separate postgres from hub using a satellite hub There is a new page in the manual Using Your Own Hub Database.
15945 MISRA FP (Rule 16.4): NO_IMPLICIT_DEFAULT_FOR_ENUM_SWITCH does not handle smaller enum types fixed
18272 MISRA FP (Rule 6-5-4, C++ 2008): Malformed for-loop Step fixed
21481 Uncaught exception in hub: OperationalError - deadlock detected fixed
31233 Moving 100 projects from the hub root to a projecttree causes what seems to be an infinite loop with the message "Moving failed for ..." fixed
33361 Add Windows Server 2019 to the supported OS list Windows Server 2019 is officially supported as of this release.
33415 Addition of libnsl.so.1 to System Requirements libnsl.so.1 added to System Requirements manual page.
33483 Telemetry: Creation of ENABLED/DISABLED file fails silently if the user doesn't have proper permissions fixed; error message now printed.
33679 Feature Request: A page describing how to upgrade your analysis installs and projects for CodeSonar Information and link to existing Upgrading Configuration Files page added to Release Notes.
33692 Clarify documentation for analysis based on compound build commands If you usually invoke your build with a list of commands, you will need to quote the list and include an invocation command: generally cmd /c on Windows and sh -c on other systems. See the Basic Tutorial for examples.
33747 Possible FP for warning class LANG.TYPE.IAT : Inappropriate Assignment Type fixed
33823 Update needed for CodeSonar manual: stating that all warning processors are for example only and there is no guarantee of suitability or support Documentation expanded to clarify that warning processors are for example only.
33953 There is no armcpp compiler model There is no longer an armcpp compiler model. All native compilers previously mapped to this model are now mapped to the armcc model.