diff --git a/addons/misra.py b/addons/misra.py index c611f0d09..05d6dc760 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -214,7 +214,11 @@ def hasSideEffectsRecursive(expr): def isBoolExpression(expr): - return expr and expr.str in ['!', '==', '!=', '<', '<=', '>', '>=', '&&', '||', '0', '1'] + if not expr: + return False + if expr.valueType and expr.valueType.type == 'bool': + return True + return expr.str in ['!', '==', '!=', '<', '<=', '>', '>=', '&&', '||', '0', '1'] def isConstantExpression(expr): diff --git a/addons/test/misra-test.c b/addons/test/misra-test.c index eef249910..e1da4def9 100644 --- a/addons/test/misra-test.c +++ b/addons/test/misra-test.c @@ -153,9 +153,12 @@ void misra_14_2() { // TODO check more variants } -void misra_14_4() { +void misra_14_4(bool b) { if (x+4){} // 14.4 else {} + + if (b) {} + else {} } void misra_15_1() {