Languages and standards

Languages and standards

The IAR C/C++ Compiler supports C,  C++ and Embedded C++. It supports a wide range of industry-standard debug and image formats, compatible with most popular debuggers and emulators, including ELF/DWARF where applicable.

The IAR C/C++ compilers offer different dialects of the C and C++ programming languages, as well as different extensions specific for embedded programming (please note that not all language standards are supported for all target implementations). The compiler can be instructed to disable extensions for strict conformance to the standards. 

A wide range of industry-standard debug and image formats compatible with most popular debuggers and emulators are supported. This includes ELF/DWARF where applicable.

ISO/ANSI C/C++ Compliance

The IAR C/C++ compilers adhere to a freestanding implementation of the following C programming language standards:

  • ISO/IEC 14882:2015, known as C++14
  • ISO/IEC 9899:2012, known as C11
  • ANSI X3.159-1989, known as C89

IEEE 754 standard

IAR Embedded Workbench supports the IEEE 754 standard for floating-point arithmetic.

MISRA C

MISRA C is a software development standard for the C programming language developed by MISRA, The Motor Industry Software Reliability Association. Its aims are to facilitate code safety, portability and reliability in the context of embedded systems, specifically those systems programmed in ISO C.

The first edition of the MISRA C standard, "Guidelines for the use of the C language in vehicle based software", was produced in 1998. In 2004, a second edition was produced with many substantial changes to the guidelines, including a complete renumbering of the rules.

IAR Embedded Workbench features a built-in MISRA C checker (2004 & 1998). With the add-on product C-STAT, you can check compliance with rules as defined by MISRA C:2004, MISRA C++:2008 and MISRA C:2012.

Test validation

We use the following commercial test suites to test conformance of our tools to the standards:

  • Plum Hall Validation test suite for ISO/IEC C conformance
  • Perennial EC++VS (Embedded C++ validation suite) for Embedded C++ conformance
  • Dinkum C++ Proofer to test how our libraries conform to the C and Embedded C++ standard as well as test our STL implementation against the C++ standard.

In addition to the commercial suites we use several in-house test suites for testing new features, regression testing, corrected errors, etc.

© IAR Systems 1995-2017 - All rights reserved.