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.11.3 or later
NetBSD 8.1 x86-64 only; 64-bit build tools only
FreeBSD 10, 12 x86-64 only; 64-bit build tools only

It is important to note the the following when running CodeSonar for Java/C# analysis:

  • CodeSonar Java analysis is available on 64-bit Windows and Linux only.
  • CodeSonar C# analysis is available on 64-bit Windows only, and requires .NET Framework 4.7.2 or later.

Language Support

Language/Tiers Features Standards Notes
Tier 1      
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

C++23

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

Some Features supported

Tier 2

 

 

 

Java  

1.1-19

Android API 15-28

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 10.0

C# .NET Core

1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1

CodeSonar supports C# up to version 10.0

C# .NET 5.0, 6.0, 7.0

CodeSonar supports C# up to version 10.0

Tier 3: all other languages

Go, JavaScript and TypeScript, Kotlin, Python, Rust

Analysis for tier 3 source languages is provided through integration with third-party analyzers.

We provide general instructions for integrating SARIF results from any analyzer with your CodeSonar project. We also provide tool-specific instructions for a select number of third-party analyzers. Some of these are shipped with CodeSonar and some are not.

  • Shipped with CodeSonar. Note that if you are already using one of these tools in your organization, we recommend using your own installed version rather than the one shipped with CodeSonar.
  • Not shipped with CodeSonar. See the following section for more information.
    • Clang Static Analyzer
    • ESLint, typescript-eslint, SARIF formatter for ESLint
    • Pylint
    • Rust Clippy; Rust Clippy-Sarif
    • Staticcheck

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.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
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
icc78k IAR Renesas 78k 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
iccm16c IAR Renesas M16C/R8C 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
mwccarm Freescale CodeWarrior for Embedded ARM 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
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
qcc 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.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
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 three pre-installed CodeWarrior compiler models:

  • chc12: Freescale CodeWarrior for HC12 compiler model
  • mwccarm: Freescale CodeWarrior for Embedded ARM compiler
  • mwccmcf: Freescale CodeWarrior for ColdFire compiler model

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

Articles in this section

White Papers
Read our white papers to 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.
Product Sheets
Read our datasheets and company briefs to gain quick insights into our solutions, products, and integrations, including their capabilities, benefits, and supported environments.
TalkSecure
Topics relating to DevSecOps, application security testing (AST), binary analysis, product security, software assurance and others.
X