CodeSonar: Supported Platforms, Languages, and Compilers

Overview

This article provides information on what support is given to host platform, languages and compilers. The information listed below can be found in the manual by searching for the keyword 'System Requirements' which then will result in other topics being linked thereafter.

Platform Support

OS Version Notes
Windows

Desktop 8, 8.1, 10, 11

Server: 2012, 2012R2, 2016, 2019, 2022

8/8.1 with April 2014 update rollup

2012/2012R2 with April 2014 update rollup

Linux All flavors glibc 2.4 or later
NetBSD 8.0 x86-64 only; 64-bit build tools only
FreeBSD 10, 12 x86-64 only; 64-bit build tools only

 

Language Support

Language Features Standards Notes
C

C89/C90

C99

C11

ANSI X.3.159-1989 / ISO/IEC 9899:1990

ISO/IEC 9899:1999

ISO/IEC 9899:2011

All features supported.

CodeSonar parses and generates internal representation for all features from these standards

C C17/C18

ISO/IEC 9899:2018

Most features handled, in particular:

__STDC_VERSION__ is predefined to 201710L.

Type qualifiers are completely ignored on function return types.

The first operand of _Generic construct undergoes the usual conversions.

C++

C++98

C++11 (C++0x)

C+14 (C++1y)

C++17 (C++1z)

C++20

ISO/IEC 14882:1998

ISO/IEC 14882:2011

ISO/IEC 14882:2014

ISO/IEC 14882:2017

ISO/IEC 14882:2020

All Features supported

All Features supported

All Features supported

All Features supported

Most Features supported

Java   1.1-14 CodeSonar ships with its own JVM, so the analysis of Java projects is not dependent on your local Java version(s).
C# .NET Framework  1.0, 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 CodeSonar supports C# up to version 9.0
C# .NET Core 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1 CodeSonar supports C# up to version 9.0
C# .NET 5.0 CodeSonar supports C# up to version 9.0

 

Compiler Support

CodeSonar comes with a number of pre-installed compiler and compiler driver models and is expected to be compatible with widely-used versions of these compilers. Other compilers not on this list can be accommodated either through the generic compiler, or with the custom compiler accompanied with some scripting. 

It is important to note that an object-code compiler is represented in CodeSonar by a compiler model.

Model Description Linux FreeBSD NetBSD Windows
armcc ARM Real View Compiler Tools C/C++ compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
armclang ARM Clang compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
borland Borland C++ for Win32, Embarcadero C++ for Win32 Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
c++ppc Wind River version of GNU C compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
c51 Keil C51 C compiler Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
cc Generic C compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
ccppc Wind River version of GNU C compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
ccrx Renesas C/C++ compiler for RX family Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
ch38 Renesas C/C++ compiler for H8S, H8/300 Series Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
chc12 Freescale CodeWarrior for HC12 Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
c1 Microsoft C compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
c130 Texas Instruments TMS320C3x/C4x Optimizing Compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
c16x Texas Instruments TMS320C6000 Optimizing C/C++ Compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
clang Clang C compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
clangpp Clang C++ compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
cosmic Cosmic C compilers Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
cvavr CodeVisionAVR C compiler Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
dcc Wind River C and C++ compilers Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
ecomppc Green Hills C Compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
gcc GNU Compiler Collection C Compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
gpp GNU Compiler Collection C++ Compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
icc430 IAR MSP430 compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
iccarm IAR ARM compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
iccavr IAR AVR compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
iccgeneric IAR compilers not covered by specific models Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
iccm32c IAR M32C compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
iccrx IAR Renesas RX compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
iccstm8 IAR STM8 compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
iccv850 IAR v850 compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
mcc18 MPLAB C18 C Compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
mcpcom Intel C/C++ compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
mwccmcf Freescale CodeWarrior for ColdFire compiler Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.10.04_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
picc Hi-Tech C compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
gcc QNX C/C++ compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
shc Renesas C/C++ compilers for the SuperH RISC engine family Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
shcpp Renesas C/C++ compilers for the SuperH RISC engine family Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
tasking The TASKING TriCore, PCP, and C166/ST10 compilers Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
visualdsp The SHARC, TigerSHARC and Blackfin compilers that ship with VisualDSP++ Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png
xcc Customizable C compiler Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png Screen_Shot_2022-01-24_at_12.09.50_PM.png

 

Supported without Compiler Models

(Windows Only) CodeSonar provides special handling for builds with CodeWarrior installations that use DLLs:

Mode Notes
DLLs If your CodeWarrior installation uses DLLs, there will be a collection of compiler plugin .dll files in an installation subdirectory. Usually the subdirectory will be something like
cw_install\bin\plugins\compiler\

where cw_install is the CodeWarrior installation directory.

In this case, use the DLL Approach (Windows only)

compiler executables If your CodeWarrior installation uses compiler executables, there will be one or more compiler .exe files in an installation subdirectory. Usually the subdirectory will be something like
cw_install\bin

where cw_install is the CodeWarrior installation directory.

In this case, use the Standard Approach

 

DLL Approach (Windows only)

If your CodeWarrior installation uses DLLs, you will need to install CodeSonar DLLs for CodeWarrior so that CodeSonar can capture full information about your software build. 

Standard Approach

If your CodeWarrior installation uses compiler executables rather than DLLs, you don't need to install any additional components. Observed compiler invocations will be recognized and mapped to Compiler Support (Pre-installed Compiler/Driver Models) using exactly the same mechanisms as are used for other tools.

There are currently two pre-installed CodeWarrior compiler models:

  • chc12: Freescale CodeWarrior for HC12
  • mwccmcf: Freescale CodeWarrior for ColdFire compiler

Custom Compiler Models

CodeSonar ships with compiler models for many industry standard compilers. In cases where none of these models are suitable, a custom compiler model may be required.

Compiler models can be authored in C++ or Python and if you are a premium support customer you may leverage tailored support to help build out custom compiler models to fit your software project requirements. 

Note: STk compiler models are no longer supported. If you have previously implemented a custom STk compiler model and need assistance converting it to C++ or Python, please submit a support ticket where advice may be given on potential next steps. 

Was this article helpful?
2 out of 2 found this helpful

Comments

0 comments

Article is closed for comments.

Articles in this section

GrammaTech Resource Library
Welcome to GrammaTech's resource library. Here you will find useful information about software development in the IoT era, where devices must not only function with impeccable quality and safety but also remain resilient to cyber attacks.
Shift Left Academy
Shift Left Academy is an educational resource to help implement a security first approach. Shift Left focuses on finding and preventing defects and security vulnerabilities early in the software development process
Blog
Posts by topic including static analysis, software assurance, and binary analysis