diff --git a/addons/misra.py b/addons/misra.py index 5b52acc57..eaea81dfb 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -1362,6 +1362,8 @@ class MisraChecker: for scope in cfg.scopes: if scope.className is None: continue + if scope.className.startswith('Anonymous'): + continue if scope.type not in ('Struct', 'Enum'): continue used = False diff --git a/addons/test/misra/misra-ctu-1-test.c b/addons/test/misra/misra-ctu-1-test.c index 6c5f5344d..b5f234206 100644 --- a/addons/test/misra/misra-ctu-1-test.c +++ b/addons/test/misra/misra-ctu-1-test.c @@ -17,6 +17,12 @@ struct misra_5_7_violation_t { }; static misra_5_7_violation_t misra_5_7_use_type_1; +// #11443 - FP +static struct +{ // no warning + uint16_t x; +} misra_5_7_false_positive_1; + // cppcheck-suppress misra-c2012-8.4 // cppcheck-suppress misra-c2012-5.8 int misra_5_8_var1; diff --git a/addons/test/misra/misra-ctu-2-test.c b/addons/test/misra/misra-ctu-2-test.c index 85e66f1eb..c2dfa5cc6 100644 --- a/addons/test/misra/misra-ctu-2-test.c +++ b/addons/test/misra/misra-ctu-2-test.c @@ -17,6 +17,12 @@ struct misra_5_7_violation_t { }; static misra_5_7_violation_t misra_5_7_use_type_2; +// #11443 - FP +static struct +{ // no warning + uint16_t x; +} misra_5_7_false_positive_2; + // cppcheck-suppress misra-c2012-5.8 static int misra_5_8_var1; // cppcheck-suppress misra-c2012-8.4