From 3c11aa781b4562beddaaa5512c064a2812fb5f7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Fri, 14 Apr 2017 21:49:52 +0200 Subject: [PATCH] Misra: Add rule 20.1 --- addons/misra-test.c | 1 + addons/misra.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/addons/misra-test.c b/addons/misra-test.c index e5222c126..180884344 100644 --- a/addons/misra-test.c +++ b/addons/misra-test.c @@ -193,3 +193,4 @@ void misra_18_8(int x) { union misra_19_2 { }; // 19.2 +#include "notfound.h" // 20.1 diff --git a/addons/misra.py b/addons/misra.py index 7aeb6891e..ad3cb8dec 100644 --- a/addons/misra.py +++ b/addons/misra.py @@ -550,6 +550,19 @@ def misra_19_2(data): if token.str == 'union': reportError(token, 19, 2) +def misra_20_1(rawTokens): + linenr = -1 + state = 1 + for token in rawTokens: + if token.str.startswith('/'): + continue + if token.linenr == linenr: + continue + linenr = token.linenr + if token.str != '#': + state = 2 + elif state == 2 and simpleMatch(token, '# include'): + reportError(token, 20, 1) if '-verify' in sys.argv[1:]: VERIFY = True @@ -616,6 +629,8 @@ for arg in sys.argv[1:]: misra_18_5(cfg) misra_18_8(cfg) misra_19_2(cfg) + if cfgNumber == 1: + misra_20_1(data.rawTokens) if VERIFY: for expected in VERIFY_EXPECTED: