From 40f136ac789726b911ab5a9d25611d714e10fcaa Mon Sep 17 00:00:00 2001 From: Conrado Gouvea Date: Thu, 3 Oct 2019 16:15:00 -0300 Subject: [PATCH] MISRA: add exception to rule 3.1 (#2231) * misra: add exception to rule 3.1 * misra: add parenthesis for clarity in rule 3.1 --- addons/misra.py | 5 +++-- addons/test/misra/misra-test.c | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/addons/misra.py b/addons/misra.py index 9d85924f8..965a269f3 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -740,9 +740,10 @@ class MisraChecker: def misra_3_1(self, rawTokens): for token in rawTokens: - if token.str.startswith('/*') or token.str.startswith('//'): + starts_with_double_slash = token.str.startswith('//') + if token.str.startswith('/*') or starts_with_double_slash: s = token.str.lstrip('/') - if '//' in s or '/*' in s: + if ((not starts_with_double_slash) and '//' in s) or '/*' in s: self.reportError(token, 3, 1) diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index a257592ae..422e64b09 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -19,9 +19,12 @@ typedef unsigned int u32; typedef signed int s32; typedef unsigned long long u64; -// // 3.1 +/* // */ // 3.1 +/* /* */ // 3.1 //// +// http://example.com // no warning + extern int misra_5_1_extern_var_hides_var_x; extern int misra_5_1_extern_var_hides_var_y; //5.1 int misra_5_1_var_hides_var________a;