From 0c26d9e470e3a23d039a0946784531be603e42ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Thu, 13 Apr 2017 21:40:59 +0200 Subject: [PATCH] Misra: Added rule 13.6 --- addons/misra-test.c | 4 ++++ addons/misra.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/addons/misra-test.c b/addons/misra-test.c index a8a300833..0a2145b43 100644 --- a/addons/misra-test.c +++ b/addons/misra-test.c @@ -56,6 +56,10 @@ void misra_13_5() { if (x && (y++ < 123)){} // 13.5 } +void misra_13_6() { + return sizeof(x++); // 13.6 +} + void misra_14_4() { if (x+4){} // 14.4 } diff --git a/addons/misra.py b/addons/misra.py index be17e9aa3..7ff988b0d 100644 --- a/addons/misra.py +++ b/addons/misra.py @@ -268,6 +268,11 @@ def misra_13_5(data): if token.isLogicalOp and hasSideEffectsRecursive(token.astOperand2): reportError(token, 13, 5) +def misra_13_6(data): + for token in data.tokenlist: + if token.str == 'sizeof' and hasSideEffectsRecursive(token.next): + reportError(token, 13, 6) + def misra_14_4(data): for token in data.tokenlist: if token.str != '(': @@ -308,5 +313,6 @@ for arg in sys.argv[1:]: misra_13_3(cfg) misra_13_4(cfg) misra_13_5(cfg) + misra_13_6(cfg) misra_14_4(cfg) misra_15_1(cfg)