From cead8a62b46aca2e65e736f201c7f7a32d634f87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Thu, 13 Apr 2017 19:43:06 +0200 Subject: [PATCH] Misra: Added rule 13.4 --- addons/misra-test.c | 4 ++++ addons/misra.py | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/addons/misra-test.c b/addons/misra-test.c index eb0503b80..a8a300833 100644 --- a/addons/misra-test.c +++ b/addons/misra-test.c @@ -48,6 +48,10 @@ void misra_13_3() { x = y++; // 13.3 } +void misra_13_4() { + if (x != (y = z)) {} // 13.4 +} + void misra_13_5() { if (x && (y++ < 123)){} // 13.5 } diff --git a/addons/misra.py b/addons/misra.py index 2acb52b59..be17e9aa3 100644 --- a/addons/misra.py +++ b/addons/misra.py @@ -254,6 +254,15 @@ def misra_13_3(data): if countSideEffects(token) >= 2: reportError(token, 13, 3) +def misra_13_4(data): + for token in data.tokenlist: + if token.str != '=': + continue + if not token.astParent: + continue + if not (token.astParent.str in [',', ';']): + reportError(token, 13, 4) + def misra_13_5(data): for token in data.tokenlist: if token.isLogicalOp and hasSideEffectsRecursive(token.astOperand2): @@ -297,6 +306,7 @@ for arg in sys.argv[1:]: misra_12_4(cfg) misra_13_1(cfg) misra_13_3(cfg) + misra_13_4(cfg) misra_13_5(cfg) misra_14_4(cfg) misra_15_1(cfg)