From 5bb4c6f5bcb6c6b564fbe59be656e868e9430b2f Mon Sep 17 00:00:00 2001 From: andymacg <117683405+andymacg@users.noreply.github.com> Date: Tue, 22 Aug 2023 06:03:12 -0400 Subject: [PATCH] Fix #11878 FP misra-c2012-18.7 on function pointer parameter with array-type args (#5343) https://trac.cppcheck.net/ticket/11878#ticket --- addons/misra.py | 5 ++++- addons/test/misra/misra-test.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/misra.py b/addons/misra.py index eaea81dfb..7201c2759 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -3231,7 +3231,10 @@ class MisraChecker: if token.str == '{': token = token.link - if cppcheckdata.simpleMatch(token, "[ ]"): + # skip function pointer parameter types + if token.astOperand1 is None: + pass + elif cppcheckdata.simpleMatch(token, "[ ]"): self.reportError(token, 18, 7) break token = token.next diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index d4e7f39ad..b1a0baca2 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -1713,6 +1713,7 @@ struct { } r18_7_struct; // 8.4 struct { uint16_t len; + int (*array_param_func_ptr)(char const *argv[], int argc); // no-warning uint8_t data_1[ 19 ]; uint8_t data_2[ ]; // 18.7 } r18_7_struct; // 8.4