Supported Standards

What C language standards does DA-C comply with?

DA-C symbol analysis is strongly depending on selected C dialect (compiler) because the main goal and advantage of DA-C analyzer is to mimic analysis of your compiler. If ANSI C dialect is selected than DA-C analysis is ANSI C (C89) compliant. ISO 9899:1999 (C99) features are supported only if selected C dialect supports them through extensions. For example, GNU C dialect and compilers based on GNU C (Green Hills in GNU mode or Keil RealView ARM in GNU mode) supports most of C99 features - variable-length arrays, designated initializers, compound literals, support for variadic macros (macros of variable arity), etc. C++ comments are supported (switch on in a dialog option). To be sure if particular dialect is C99 compliant refer to your compiler documentation.

MISRA C

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

For the first two editions of MISRA-C (1998 and 2004) all Guidelines were considered as Rules. With the publication of MISRA C:2012 a new category of Guideline was introduced - the 'Directive' whose compliance is more open to interpretation, or relates to process or procedural matters.

MISRA C:1998 had 127 rules, of which 93 were required and 34 were advisory; the rules were numbered in sequence from 1 to 127.

MISRA C:2004 document contains 141 rules, of which 121 are "required" and 20 are "advisory"; they are divided into 21 topical categories.

MISRA C:2012 document contains 143 rules, of which 10 are mandatory, 101 are "required" and 32 are "advisory"; they are divided into 22 topical categories.

"MISRA", "MISRA C" and the triangle logo are registered trademarks owned by HORIBA MIRA Ltd, held on behalf of the MISRA Consortium.