From 82f51bd523c6fc53e3b420063e2e76efd62b1504 Mon Sep 17 00:00:00 2001 From: Georgiy Komarov Date: Thu, 7 Jan 2021 17:04:12 +0300 Subject: [PATCH] misra: Fix crash on rule 9.x (#3024) Closes ticket #10084 --- addons/misra_9.py | 2 +- addons/test/misra/misra-test.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/misra_9.py b/addons/misra_9.py index 62a19a073..6217e9288 100644 --- a/addons/misra_9.py +++ b/addons/misra_9.py @@ -430,7 +430,7 @@ def createArrayChildrenDefs(ed, token, rawTokens = None): if foundToken and foundToken.next and foundToken.next.str == ']': ed.markAsFlexibleArray(token) - if token.astOperand2 is not None: + if (token.astOperand2 is not None) and (token.astOperand2.getKnownIntValue() is not None): for i in range(token.astOperand2.getKnownIntValue()): createChild(ed, token, i) else: diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index 2e6a95ea6..5b8a2034f 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -444,6 +444,10 @@ void misra_9_struct_initializers() { dummy_struct dsd[] = { [0] = 1 }; // 9.5 } +void misra_9_broken_initializers() { + char a[UNKNOWN_MACRO] = { 19, 23, 0 }; // 18.8 +} + void misra_9_2() { union misra_9_2_union { // 19.2 char c;