1# MISRA-C Deviations {#coreMISRA_Exceptions_pg} 2 3CMSIS-Core (Cortex-A) uses the common coding rules for CMSIS components that are documented in 4[CMSIS Introduction](../General/index.html). 5 6CMSIS-Core (Cortex-A) violates the following MISRA-C:2012 rules: 7 8 - Directive 4.9, function-like macro defined.<br> 9 - Violated since function-like macros are used to generate more efficient code. 10 11 - Rule 1.3, multiple use of '#/##' operators in macro definition.<br> 12 - Violated since function-like macros are used to generate more efficient code. 13 14 - Rule 11.4, conversion between a pointer and integer type.<br> 15 - Violated because of core register access. 16 17 - Rule 11.6, cast from unsigned long to pointer.<br> 18 - Violated because of core register access. 19 20 - Rule 13.5, side effects on right hand side of logical operator.<br> 21 - Violated because of shift operand is used in macros and functions. 22 23 - Rule 14.4, conditional expression should have essentially Boolean type.<br> 24 - Violated since macros with several instructions are used. 25 26 - Rule 15.5, return statement before end of function.<br> 27 - Violated to simplify code logic. 28 29 - Rule 20.10, '#/##' operators used.<br> 30 - Violated since function-like macros are used to generate more efficient code. 31 32 - Rule 21.1, reserved to the compiler.<br> 33 - Violated since macros with leading underscores are used. 34