09-12-2009, 01:41 PM
If your implementation is a conforming freestanding implementation then the C99 language standard states that it must provide all the features associated with the headers , , , , , , and . For C90, the list is a little shorter. For a hosted implementation, it is all the headers defined by the standard.
Within these headers, MISRA C prohibits some functions because of known issues. As you say, anything else is implicitly OK to use, subject to appropriate validation having been performed.
The key word here is appropriate. This could mean that the compiler vendor certifies that the libraries are
MISRA compliant, possibly also providing you with evidence to back up the claim. Alternatively some vendors, particularly of embedded development kits, may provide you with the source code for the library in which case you can treat it in the same manner as your own source code.
The worst case scenario is, of course, that you may need to generate your own equivalents of some library functions.
Within these headers, MISRA C prohibits some functions because of known issues. As you say, anything else is implicitly OK to use, subject to appropriate validation having been performed.
The key word here is appropriate. This could mean that the compiler vendor certifies that the libraries are
MISRA compliant, possibly also providing you with evidence to back up the claim. Alternatively some vendors, particularly of embedded development kits, may provide you with the source code for the library in which case you can treat it in the same manner as your own source code.
The worst case scenario is, of course, that you may need to generate your own equivalents of some library functions.
Posted by and on behalf of the MISRA C Working Group