misra; implement rule 20.9
This commit is contained in:
parent
74ab8f1a48
commit
3ba4696f4f
|
@ -3215,6 +3215,16 @@ class MisraChecker:
|
||||||
if cond.result and cond.result not in (0,1):
|
if cond.result and cond.result not in (0,1):
|
||||||
self.reportError(cond, 20, 8)
|
self.reportError(cond, 20, 8)
|
||||||
|
|
||||||
|
def misra_20_9(self, cfg):
|
||||||
|
for cond in cfg.preprocessor_if_conditions:
|
||||||
|
if cond.E is None:
|
||||||
|
continue
|
||||||
|
for s in cond.E.split(' '):
|
||||||
|
if (s[0] >= 'A' and s[0] <= 'Z') or (s[0] >= 'a' and s[0] <= 'z'):
|
||||||
|
if isKeyword(s):
|
||||||
|
continue
|
||||||
|
self.reportError(cond, 20, 9)
|
||||||
|
|
||||||
def misra_20_10(self, data):
|
def misra_20_10(self, data):
|
||||||
for directive in data.directives:
|
for directive in data.directives:
|
||||||
d = Define(directive)
|
d = Define(directive)
|
||||||
|
@ -3892,6 +3902,7 @@ class MisraChecker:
|
||||||
self.executeCheck(2005, self.misra_20_5, cfg)
|
self.executeCheck(2005, self.misra_20_5, cfg)
|
||||||
self.executeCheck(2007, self.misra_20_7, cfg)
|
self.executeCheck(2007, self.misra_20_7, cfg)
|
||||||
self.executeCheck(2008, self.misra_20_8, cfg)
|
self.executeCheck(2008, self.misra_20_8, cfg)
|
||||||
|
self.executeCheck(2009, self.misra_20_9, cfg)
|
||||||
self.executeCheck(2010, self.misra_20_10, cfg)
|
self.executeCheck(2010, self.misra_20_10, cfg)
|
||||||
self.executeCheck(2013, self.misra_20_13, cfg)
|
self.executeCheck(2013, self.misra_20_13, cfg)
|
||||||
self.executeCheck(2014, self.misra_20_14, cfg)
|
self.executeCheck(2014, self.misra_20_14, cfg)
|
||||||
|
|
|
@ -1231,11 +1231,11 @@ static void misra_15_6(void) {
|
||||||
if (x!=0); // 15.6
|
if (x!=0); // 15.6
|
||||||
else{}
|
else{}
|
||||||
|
|
||||||
#if A>1 // no-warning
|
#if A>1 // 20.9
|
||||||
(void)0;
|
(void)0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if A > 0x42
|
#if A > 0x42 // 20.9
|
||||||
if (true) {
|
if (true) {
|
||||||
(void)0;
|
(void)0;
|
||||||
}
|
}
|
||||||
|
@ -1559,13 +1559,19 @@ struct { int a; } struct_20_7_s;
|
||||||
#define MUL(a ,b ) ( a * b ) // 20.7
|
#define MUL(a ,b ) ( a * b ) // 20.7
|
||||||
|
|
||||||
#if __LINE__ // 20.8
|
#if __LINE__ // 20.8
|
||||||
|
#elif 2+5 // 20.8
|
||||||
|
#elif 2-2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if A // 20.9
|
||||||
|
#elif B || C // 20.9
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define M_20_10(a) (#a) // 20.10
|
#define M_20_10(a) (#a) // 20.10
|
||||||
|
|
||||||
#else1 // 20.13
|
#else1 // 20.13
|
||||||
|
|
||||||
#ifdef A>1
|
#ifdef A
|
||||||
# define somethingis 5 // no warning
|
# define somethingis 5 // no warning
|
||||||
# define func_20_13(v) (v) // no warning
|
# define func_20_13(v) (v) // no warning
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue