From b1d7e848fa3dfce275bde5765fa9a5b643508b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Thu, 4 May 2023 11:35:34 +0200 Subject: [PATCH] Fix #11443 (FP: misra-c2012-5.7 on anonymous struct) --- 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 5b52acc5766..eaea81dfb9d 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -1362,6 +1362,8 @@ def _save_ctu_summary_tagnames(self, dumpfile, cfg): 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 6c5f5344dbb..b5f234206e8 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 85e66f1eb6a..c2dfa5cc642 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