CompCert supports all of ISO C 99, with the following exceptions:
longjmp
and setjmp
are not guaranteed to work.switch
statements must be structured as in MISRA-C.
Support for unstructured switches, as in Duff’s Device, can be activated
via the command-line option -funstructured-switch
.With that, CompCert supports the full MISRA-C 2004 subset of C, plus many features that are excluded by MISRA (such as recursive functions and dynamic heap memory allocation).
Additionally, a number of ISO C 2011 features are supported:
_Alignof
operator and the _Alignas
attribute._Static_assert
statements and _Generic
expressions.Furthermore, CompCert supports some extensions to ISO C taken from the GNU and Diab compilers:
Request your free trial package today, complete with training and support via WebEx and email.