// Check violations for rule 14.4 // https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_04.c // // Confidence: Moderate // Copyright: (C) 2021 Intel Corporation // // SPDX-License-Identifier: Apache-2.0 virtual report @initialize:python@ @@ @rule1_base@ identifier function, v; type T1, T2; parameter list[n] P1; parameter list[n1] P2; @@ ( T1 function(P1, T2 v, P2) {...} | T1 function(P1, T2 *v, P2) {...} ) @ script:python @ t << rule1_base.T2; v << rule1_base.v; @@ if t == "bool": cocci.include_match(False) @rule1@ identifier rule1_base.v; position p; @@ ( while (v@p) {...} | if (v@p) {...} ) @ script:python @ p << rule1.p; @@ msg = "WARNING: Violation to rule 14.4 (Controlling expression shall have essentially Boolean type)" coccilib.report.print_report(p[0], msg) @rule2_base@ identifier v; type T; @@ T v; ... @ script:python @ t << rule2_base.T; v << rule2_base.v; @@ if t == "bool": cocci.include_match(False) @rule2@ position p; identifier rule2_base.v; @@ while (v@p) {...} @ script:python @ p << rule2.p; @@ msg = "WARNING: Violation to rule 14.4 (Controlling expression shall have essentially Boolean type)" coccilib.report.print_report(p[0], msg) @rule3@ position p; constant c; @@ ( while (c@p) {...} | while (!c@p) {...} | if (c@p) {...} | if (!c@p) {...} ) @ script:python @ p << rule3.p; @@ msg = "WARNING: Violation to rule 14.4 (Controlling expression shall have essentially Boolean type)" coccilib.report.print_report(p[0], msg)