From da3ba536c80000f3019be5dbcd87af0a66bcb759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Mon, 10 Jul 2023 20:10:28 +0200 Subject: [PATCH] fix --- addons/misra_9.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/addons/misra_9.py b/addons/misra_9.py index 47c0599327e..cbed6312ae2 100644 --- a/addons/misra_9.py +++ b/addons/misra_9.py @@ -32,7 +32,7 @@ def __repr__(self): attrs = ["childIndex", "elementType", "valueType"] return "{}({}, {}, {})".format( - "ED", + "ElementDef", self.getLongName(), inits, ", ".join(("{}={}".format(a, repr(getattr(self, a))) for a in attrs)) @@ -255,21 +255,21 @@ def parseInitializer(self, root, token): isFirstElement = False isDesignated = True - elif self.token.str == '{' or self.token.isString: + elif self.token.isString and self.ed.isArray: + self.ed.setInitialized(isDesignated) + if self.token == self.token.astParent.astOperand1 and self.token.astParent.astOperand2: + self.token = self.token.astParent.astOperand2 + self.ed.markAsCurrent() + self.ed = self.root.getNextChild() + else: + self.unwindAndContinue() + continue + + elif self.token.str == '{': nextChild = self.root.getNextChild() if self.root is not None else None if nextChild: - if nextChild.isArray and self.token.isString: - # Zero initializer causes recursive initialization - nextChild.setInitialized(isDesignated) - if self.token == self.token.astParent.astOperand1 and self.token.astParent.astOperand2: - self.token = self.token.astParent.astOperand2 - self.ed.markAsCurrent() - self.ed = self.root.getNextChild() - else: - self.unwindAndContinue() - continue - elif nextChild.isArray or nextChild.isRecord: + if nextChild.isArray or nextChild.isRecord: nextChild.unset() nextChild.setInitialized(isDesignated) self.ed = nextChild.getFirstValueElement()