The following table lists the exceptions to MISRA-C:2004 rules that apply across all the library projects.
| Exception | MISRA-C:2004 Rule | Reason |
|---|---|---|
| Accept non-ANSI reserved words `near' and `far' | 1.1 REQ + 2.2 REQ | These are HC-08 specific language extensions |
| Accept non-ANSI reserved word `__paged' | 1.1 REQ + 2.2 REQ | This is an HC-08 specific language extension |
| Allow the use of modifiers and types outside of typedefs that indicate size and signedness | 6.3 ADV | Data type formats are configurable (default size and/or sign can be changed with the -T flexible type management option). |
| Allow function-like macros | 19.7 ADV | Function-like macros allow more efficient code |
| Allow standard library functions to be #define'd | 20.1 REQ | The rule cannot apply to the standard library implementation itself |
| Allow repeatedly included header files | 19.15 REQ | All the library headers are guarded using macros |
| Allow multiple exit points for functions | 14.7 REQ | Use of multiple return statements can simplify code logic |
| Allow unions | 18.4 REQ | Unions are used for effective representation of floating-point infinity |
| Allow `continue' statements | 14.5 REQ | Use of `continue' statements can simplify code logic |