From 79ef26d7a2b7aaf8f72de7ed05b0b0b127683156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Fri, 14 Apr 2017 22:22:22 +0200 Subject: [PATCH] Misra: Add rule 20.2 --- addons/misra-test.c | 1 + addons/misra.py | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/addons/misra-test.c b/addons/misra-test.c index 180884344..8d283c2f2 100644 --- a/addons/misra-test.c +++ b/addons/misra-test.c @@ -2,6 +2,7 @@ // ~/cppcheck/cppcheck --dump misra-test.c && python misra.py -verify misra-test.c.dump #include // 17.1 +#include "path\file.h" // 20.2 typedef unsigned char u8; diff --git a/addons/misra.py b/addons/misra.py index ad3cb8dec..7ebbfc6d1 100644 --- a/addons/misra.py +++ b/addons/misra.py @@ -564,6 +564,16 @@ def misra_20_1(rawTokens): elif state == 2 and simpleMatch(token, '# include'): reportError(token, 20, 1) +def misra_20_2(rawTokens): + for token in rawTokens: + if not simpleMatch(token, '# include'): + continue + header = token.next.next.str + for pattern in ['\\', '//', '/*', '\'']: + if header.find(pattern)>0: + reportError(token, 20, 2) + break + if '-verify' in sys.argv[1:]: VERIFY = True @@ -631,6 +641,7 @@ for arg in sys.argv[1:]: misra_19_2(cfg) if cfgNumber == 1: misra_20_1(data.rawTokens) + misra_20_2(data.rawTokens) if VERIFY: for expected in VERIFY_EXPECTED: