You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.2 KiB
76 lines
1.2 KiB
// Check violations for rule 5.7 |
|
// https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_07.c |
|
// |
|
// Confidence: Moderate |
|
// Copyright: (C) 2020 Intel Corporation |
|
// |
|
// SPDX-License-Identifier: Apache-2.0 |
|
|
|
virtual report |
|
|
|
@initialize:python@ |
|
@@ |
|
|
|
@common_case@ |
|
position p; |
|
identifier t, v; |
|
@@ |
|
( |
|
struct t *v@p; |
|
| |
|
struct t v@p; |
|
| |
|
union t v@p; |
|
) |
|
|
|
@ script:python @ |
|
t << common_case.t; |
|
v << common_case.v; |
|
p << common_case.p; |
|
@@ |
|
|
|
msg = "WARNING: Violation to rule 5.7 (Tag name should be unique) tag: {}".format(v) |
|
if t == v: |
|
coccilib.report.print_report(p[0], msg) |
|
|
|
@per_type@ |
|
type T; |
|
identifier v; |
|
position p; |
|
@@ |
|
( |
|
T v@p; |
|
| |
|
T *v@p; |
|
) |
|
|
|
@ script:python @ |
|
t << per_type.T; |
|
v << per_type.v; |
|
p << per_type.p; |
|
@@ |
|
|
|
msg = "WARNING: Violation to rule 5.7 (Tag name should be unique) tag: {}".format(v) |
|
if t == v: |
|
coccilib.report.print_report(p[0], msg) |
|
|
|
@function_match@ |
|
type T1, T2; |
|
identifier function, v; |
|
position p; |
|
parameter list[n] P1; |
|
parameter list[n1] P2; |
|
@@ |
|
T1 function(P1, T2 *v@p, P2) { |
|
... |
|
} |
|
|
|
@ script:python @ |
|
v << function_match.v; |
|
t << function_match.T2; |
|
p << function_match.p; |
|
@@ |
|
|
|
msg = "WARNING: Violation to rule 5.7 (Tag name should be unique) tag: {}".format(v) |
|
if v == t.split(" ")[-1]: |
|
coccilib.report.print_report(p[0], msg)
|
|
|