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.
The IAR C/C++ compilers adhere to a freestanding implementation of the following C programming language standards:
IAR C/C++ compilers offer these dialects of C++:
Embedded C++ is a proper subset of the C++ programming language defined by the Embedded C++ Technical Committee. The fact that performance and portability are particularly important in embedded systems development was considered when defining Embedded C++, and because of this it excludes size and speed consuming C++ features that are not relevant for embedded systems.
Embedded C++ lacks the following features of C++ making the runtime library significantly more efficient:
Recent additions to the ISO/ANSI C++ standard are also excluded from Embedded C++. The reason is that they represent potential portability problems, due to the fact that few development tools support the standard.
IAR Systems' Extended Embedded C++ is also a subset of C++, but includes some additional language features compared to Embedded C++. These features strengthen the benefits of object-oriented development without carrying an overhead in efficiency or size.
Extended Embedded C++ lacks the following C++ features:
IAR Embedded Workbench supports the IEEE 754 standard for floating-point arithmetic.
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.
We use the following commercial test suites to test conformance of our tools to the standards:
In addition to the commercial suites we use several in-house test suites for testing new features, regression testing, corrected errors, etc.