From fbc87c12e24b6644f0ebf87098023e3b1b1904ee Mon Sep 17 00:00:00 2001 From: Georgy Komarov Date: Thu, 28 Nov 2019 20:01:16 +0300 Subject: [PATCH 1/3] misra.py: Fix 5.3 FP This will close https://trac.cppcheck.net/ticket/9497 --- addons/misra.py | 2 -- addons/test/misra/misra-test.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/addons/misra.py b/addons/misra.py index f6e952a8a12..803d1d5d252 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -921,8 +921,6 @@ def misra_5_3(self, data): continue if int(innerVar.nameToken.linenr) > int(outerVar.nameToken.linenr): self.reportError(innerVar.nameToken, 5, 3) - else: - self.reportError(outerVar.nameToken, 5, 3) outerScope = outerScope.nestedIn for scope in data.scopes: if scope.className and innerVar.nameToken.str[:num_sign_chars] == scope.className[:num_sign_chars]: diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index 50c835e48ff..26235be40e0 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -165,6 +165,16 @@ void misra_5_3_func1(void) } } void misra_5_3_enum_hidesfunction_31y(void) {} //5.3 +extern bar(int i); +void f( void ) +{ + { + int i; + i = 42; + bar(i); + } + int i; // no warning +} #define misra_5_4_macro_hides_macro__31x 1 From 8b88daee9df030f7186d0e46ce9c0b3678153215 Mon Sep 17 00:00:00 2001 From: Georgy Komarov Date: Thu, 28 Nov 2019 21:12:58 +0300 Subject: [PATCH 2/3] fix names conflict --- addons/test/misra/misra-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index 26235be40e0..f0c521c2467 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -166,7 +166,7 @@ void misra_5_3_func1(void) } void misra_5_3_enum_hidesfunction_31y(void) {} //5.3 extern bar(int i); -void f( void ) +void f_5_3( void ) { { int i; From 2a3d90bbe43a14cf795d7a6c120b07b287fb11d3 Mon Sep 17 00:00:00 2001 From: Georgy Komarov Date: Thu, 28 Nov 2019 21:23:15 +0300 Subject: [PATCH 3/3] fix naming --- addons/test/misra/misra-test.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index f0c521c2467..bd67755339e 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -165,13 +165,13 @@ void misra_5_3_func1(void) } } void misra_5_3_enum_hidesfunction_31y(void) {} //5.3 -extern bar(int i); +extern bar_5_3(int i); void f_5_3( void ) { { int i; i = 42; - bar(i); + bar_5_3(i); } int i; // no warning }