From 1ce901385a12f98d4a16aa8ae4a6e115ab6f5602 Mon Sep 17 00:00:00 2001 From: Swasti Shrivastava <37058682+swasti16@users.noreply.github.com> Date: Thu, 16 Nov 2023 18:27:27 +0530 Subject: [PATCH] Fix #12172:False positive: misra-11.1 function pointer assigned to array (#5667) --- addons/misra.py | 3 ++- addons/test/misra/misra-test.c | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/addons/misra.py b/addons/misra.py index 6f38ec069..f6e0698df 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -647,7 +647,8 @@ def get_function_pointer_type(tok): ret += '(' tok = tok.next.next while tok and (tok.str not in '()'): - ret += ' ' + tok.str + if tok.varId is None: + ret += ' ' + tok.str tok = tok.next if (tok is None) or tok.str != ')': return None diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index 790c7a0da..14eddd860 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -779,6 +779,13 @@ static void misra_10_8(u8 x, s32 a, s32 b) { int (*misra_11_1_p)(void); // 8.4 void *misra_11_1_bad1 = (void*)misra_11_1_p; // 11.1 8.4 +// #12172 +typedef void (*pfFunc_11_1)(uint32_t some); +extern pfFunc_11_1 data_11_1[10]; +void func_11_1(pfFunc_11_1 ptr){ //8.4 + data_11_1[index] = ptr; // no-warning +} + struct misra_11_2_s; struct misra_11_2_t;