diff --git a/addons/misra-test.c b/addons/misra-test.c index 7d828580d..4a5692ff2 100644 --- a/addons/misra-test.c +++ b/addons/misra-test.c @@ -164,4 +164,11 @@ void misra_16_6() { } } - +void misra_16_7() { + switch (x != 123) { // 16.7 + case 1: + break; + default: + break; + } +} diff --git a/addons/misra.py b/addons/misra.py index e3d240bbf..9095b186e 100644 --- a/addons/misra.py +++ b/addons/misra.py @@ -492,6 +492,11 @@ def misra_16_6(data): if count < 2: reportError(token, 16, 6) +def misra_16_7(data): + for token in data.tokenlist: + if simpleMatch(token, 'switch (') and isBoolExpression(token.next.astOperand2): + reportError(token, 16, 7) + if '-verify' in sys.argv[1:]: VERIFY = True @@ -550,6 +555,7 @@ for arg in sys.argv[1:]: misra_16_4(cfg) misra_16_5(cfg) misra_16_6(cfg) + misra_16_7(cfg) if VERIFY: for expected in VERIFY_EXPECTED: