#include #include /* ----------------- Example code from MISRA C:2012 begin ----------------- */ void f1 ( void ) { char *s1 = setlocale ( LC_ALL, 0 ); /* Non-compliant */ struct lconv *conv = localeconv ( ); /* Non-compliant */ s1[ 1 ] = 'A'; /* Undefined behaviour */ conv->decimal_point = "^"; /* Undefined behaviour */ } void f2 ( void ) { char str[ 128 ]; ( void ) strcpy ( str, setlocale ( LC_ALL, 0 ) ); /* Compliant */ const struct lconv *conv = localeconv ( ); /* Compliant */ conv->decimal_point = "^"; /* Constraint violation */ } void f3 ( void ) { const struct lconv *conv = localeconv ( ); /* Compliant */ conv->grouping[ 2 ] = 'x'; /* Non-compliant */ } /* ------------------ Example code from MISRA C:2012 end ------------------ */