#include /* ----------------- Example code from MISRA C:2012 begin ----------------- */ void fn ( void ) { union { int16_t i; int32_t j; } a = { 0 }, b = { 1 }; a.j = a.i; /* Non-compliant */ a = b; /* Compliant */ } #include int16_t a[ 20 ]; void f ( void ) { memcpy ( &a[ 5 ], &a[ 4 ], 2u * sizeof ( a[ 0 ] ) ); /* Non-compliant */ } void g ( void ) { int16_t *p = &a[ 0 ]; int16_t *q = &a[ 0 ]; *p = *q; /* Compliant */ } /* ------------------ Example code from MISRA C:2012 end ------------------ */