From ec72330e7ab1f184fbeebe33c381cfb1ae71fa98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Thu, 13 Apr 2017 23:07:41 +0200 Subject: [PATCH] Misra: Add rule 15.5 --- addons/misra-test.c | 8 ++++++++ addons/misra.py | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/addons/misra-test.c b/addons/misra-test.c index 7419eba03..f40c43647 100644 --- a/addons/misra-test.c +++ b/addons/misra-test.c @@ -93,3 +93,11 @@ void misra_15_3() { } } } + +int misra_15_5() { + if (x!=0) { + return 1; // 15.5 + } + return 2; +} + diff --git a/addons/misra.py b/addons/misra.py index c0830b105..e9065394c 100644 --- a/addons/misra.py +++ b/addons/misra.py @@ -364,6 +364,11 @@ def misra_15_3(data): if not scope: reportError(token, 15, 3) +def misra_15_5(data): + for token in data.tokenlist: + if token.str == 'return' and token.scope.type != 'Function': + reportError(token, 15, 5) + for arg in sys.argv[1:]: print('Checking ' + arg + '...') data = cppcheckdata.parsedump(arg) @@ -395,5 +400,6 @@ for arg in sys.argv[1:]: misra_15_1(cfg) misra_15_2(cfg) misra_15_3(cfg) + misra_15_5(cfg)