From 2cb4c4126a03916c13d1557a7ad22142b24c69ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 7 May 2023 20:22:26 +0200 Subject: [PATCH] Fix #11443 (FP: misra-c2012-5.7 on anonymous struct) (#5033) --- addons/misra.py | 2 ++ addons/test/misra/misra-ctu-1-test.c | 6 ++++++ addons/test/misra/misra-ctu-2-test.c | 6 ++++++ 3 files changed, 14 insertions(+) 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