@@ -70,7 +70,7 @@ static _Atomic int misra_1_4_var; // 1.4
7070static _Noreturn void misra_1_4_func (void ) // 1.4
7171{
7272 if (0 != _Generic(misra_1_4_var )) {} // 1.4 17.3
73- printf_s ("hello" ); // 1.4
73+ printf_s ("hello" ); // 1.4 17.3
7474}
7575
7676#define MISRA_2_2 (1*60)
@@ -154,7 +154,7 @@ static void misra_5_2_function_hides_var_31y(void) {}//5.2
154154static void foo (void )
155155{
156156 int i ;
157- switch (misra_5_2_func1 ()) //16.4 16.6
157+ switch (misra_5_2_func1 ()) //16.4 16.6 17.3
158158 {
159159 case 1 :
160160 {
@@ -248,7 +248,7 @@ int x;
248248};
249249static void misra_5_5_func1 (void )
250250{
251- switch (misra_5_5_func2 ()) //16.4 16.6
251+ switch (misra_5_5_func2 ()) //16.4 16.6 17.3
252252 {
253253 case 1 :
254254 {
@@ -680,21 +680,21 @@ static void misra_10_1_ternary(void)
680680 int16_t i16 ;
681681
682682 a = ui16 << ui16 ; // 10.6
683- a = ui16 << (get_bool (42 ) ? ui16 : ui16 );
684- a = ui16 << (get_bool (42 ) ? ui16 : (get_bool (34 ) ? ui16 : ui16 ));
685- a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui16 ) : ui16 );
686- a = ui16 << (get_bool (42 ) ? i16 : (get_bool (34 ) ? ui16 : ui16 )); // 10.1 10.4
687- a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? ui16 : i16 ) : ui16 ); // 10.1 10.4
688- a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui16 ) : i16 ); // 10.1 10.4
689- a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : ui8 ); // 10.4
690- a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? i16 : ui8 ) : ui8 ); // 10.1 10.4
691- a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : ui8 ) << ui16 ; // 10.4
692- a = (get_bool (42 ) ? (get_bool (34 ) ? i16 : ui8 ) : ui8 ) << ui16 ; // 10.1 10.4
693- a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : i8 ) : ui8 ) << ui16 ; // 10.1 10.4
694- a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : i8 ) << ui16 ; // 10.1
695- a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : ui8 ) << (get_bool (19 ) ? ui16 : ui8 ); // 10.4
696- a = (get_bool (42 ) ? (get_bool (34 ) ? i16 : ui8 ) : ui8 ) << (get_bool (19 ) ? ui16 : ui8 ); // 10.1 10.4
697- a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : ui8 ) << (get_bool (19 ) ? i16 : ui8 ); // 10.1 10.4
683+ a = ui16 << (get_bool (42 ) ? ui16 : ui16 ); // 17.3
684+ a = ui16 << (get_bool (42 ) ? ui16 : (get_bool (34 ) ? ui16 : ui16 )); // 17.3
685+ a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui16 ) : ui16 ); // 17.3
686+ a = ui16 << (get_bool (42 ) ? i16 : (get_bool (34 ) ? ui16 : ui16 )); // 10.1 10.4 17.3
687+ a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? ui16 : i16 ) : ui16 ); // 10.1 10.4 17.3
688+ a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui16 ) : i16 ); // 10.1 10.4 17.3
689+ a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : ui8 ); // 10.4 17.3
690+ a = ui16 << (get_bool (42 ) ? (get_bool (34 ) ? i16 : ui8 ) : ui8 ); // 10.1 10.4 17.3
691+ a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : ui8 ) << ui16 ; // 10.4 17.3
692+ a = (get_bool (42 ) ? (get_bool (34 ) ? i16 : ui8 ) : ui8 ) << ui16 ; // 10.1 10.4 17.3
693+ a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : i8 ) : ui8 ) << ui16 ; // 10.1 10.4 17.3
694+ a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : i8 ) << ui16 ; // 10.1 17.3
695+ a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : ui8 ) << (get_bool (19 ) ? ui16 : ui8 ); // 10.4 17.3
696+ a = (get_bool (42 ) ? (get_bool (34 ) ? i16 : ui8 ) : ui8 ) << (get_bool (19 ) ? ui16 : ui8 ); // 10.1 10.4 17.3
697+ a = (get_bool (42 ) ? (get_bool (34 ) ? ui16 : ui8 ) : ui8 ) << (get_bool (19 ) ? i16 : ui8 ); // 10.1 10.4 17.3
698698}
699699
700700static void misra_10_2 (void ) {
@@ -727,7 +727,7 @@ static void misra_10_3(uint32_t u32a, uint32_t u32b) {
727727 res = 0.1f ; // 10.3
728728 const char c = '0' ; // no-warning
729729 bool b = true; // no-warning
730- uint32_t u = UINT32_C (10 ); // no-warning
730+ uint32_t u = UINT32_C (10 ); // 17.3 no-warning
731731}
732732
733733static void misra_10_4 (u32 x , s32 y ) {
@@ -799,7 +799,7 @@ static void misra_10_7(uint16_t u16a, uint16_t u16b) {
799799 res = u32a * (u16a + u16b ); // 10.7
800800 u32a *= u16a + u16b ; // 10.7
801801 u32a = ((uint32_t )4 * (uint32_t )2 * (uint32_t )4 ); // no-warning (#10488)
802- dostuff (& t , (2 * 60 * 1000 )); // no-warning
802+ dostuff (& t , (2 * 60 * 1000 )); // 17.3 no-warning
803803}
804804
805805static void misra_10_8 (u8 x , s32 a , s32 b ) {
@@ -966,8 +966,8 @@ void misra_12_3(int a, int b, int c) {
966966 int a43 , a44 = MISRA_12_3_FN3_2 (a34 , a35 ); // 12.3
967967
968968 MISRA_12_3_FN3_2_MSG (fprintf (stderr , "test\n" )); // 12.3 21.6
969-
970- f ((1 ,2 ),3 ); // TODO
969+ // TODO
970+ f ((1 ,2 ),3 ); // 17.3
971971
972972 // third clause: 2 persistent side effects instead of 1 (14.2)
973973 for (i = 0 ; i < 10 ; i ++ , j ++ ){} // 12.3 14.2
@@ -981,8 +981,8 @@ void misra_12_3(int a, int b, int c) {
981981 misra_12_3_fn4 (misra_12_3_fn7 (& a1 , 32 ), & a1 );
982982 misra_12_3_fn6 (misra_12_3_fn5 (& a1 , 32 ), & a1 );
983983 misra_12_3_fn6 (misra_12_3_fn7 (& a1 , 32 ), & a1 );
984- misra_12_3_fn7 (maxlen , fn (va , unsigned long ), false);
985- misra_12_3_fn8 (maxlen , (unsigned long )((uintptr_t )fn (va , void * )), false);
984+ misra_12_3_fn7 (maxlen , fn (va , unsigned long ), false); // 17.3
985+ misra_12_3_fn8 (maxlen , (unsigned long )((uintptr_t )fn (va , void * )), false); // 17.3
986986
987987 const struct fun_t
988988 {
@@ -1268,7 +1268,7 @@ static void misra_14_2_init_value_1(int32_t *var);
12681268
12691269static void misra_14_2_fn1 (bool b ) {
12701270 for (;i ++ < 10 ;) {} // 14.2
1271- for (;i < 10 ;dostuff ()) {} // 14.2
1271+ for (;i < 10 ;dostuff ()) {} // 14.2 17.3
12721272 int32_t g = 0 ;
12731273 int g_arr [42 ];
12741274 g += 2 ; // no-warning
@@ -1286,7 +1286,7 @@ static void misra_14_2_fn1(bool b) {
12861286 int i2 ;
12871287 for (misra_14_2_init_value (& i1 ); i1 < 10 ; ++ i1 ) {} // no-warning
12881288 for (misra_14_2_init_value_1 (& i2 ); i2 < 10 ; ++ i2 ) {} // no-warning
1289- for (misra_14_2_init_value_2 (& i2 ); i2 < 10 ; ++ i2 ) {} // no-warning
1289+ for (misra_14_2_init_value_2 (& i2 ); i2 < 10 ; ++ i2 ) {} // 17.3 no-warning
12901290
12911291 bool abort = false;
12921292 for (i = 0 ; (i < 10 ) && !abort ; ++ i ) { // 14.2 as 'i' is not a variable
@@ -1776,7 +1776,7 @@ static void misra_17_1(void) {
17761776 va_arg (); // 17.1
17771777 va_start (); // 17.1
17781778 va_end (); // 17.1
1779- va_copy (); // 17.1
1779+ va_copy (); // 17.1 17.3
17801780}
17811781
17821782static void misra_17_2_ok_1 (void ) { ; }
@@ -1807,8 +1807,15 @@ static void misra_17_2_5(void) {
18071807}
18081808
18091809bool (* dostuff )(); //8.2 8.4
1810+ struct s173 {
1811+ int a ;
1812+ int b ;
1813+ }
18101814static void misra_17_3 (void ) {
1811- if (dostuff ()) {}
1815+ if (dostuff ()) {} // no-warning
1816+ bool a = dostuff (); // no-warning
1817+ dostuff2 (); // 17.3
1818+ s173 ( * misra_8_2_p_a ) (void ); // no-warning
18121819}
18131820
18141821static void misra_config (const char * str ) {
@@ -1954,7 +1961,7 @@ static int misra_21_1(void) {
19541961 int _a = 42 ; // no warning: only directives affected
19551962 errno = EINVAL ; // no warning
19561963 _a ++ ; // no warning
1957- _exit (1 ); // no warning
1964+ _exit (1 ); // 17.3 no warning
19581965 return _a ; // no warning
19591966}
19601967static int _misra_21_1_2 (void ); // no warning
0 commit comments