Skip to content

Commit 29420e9

Browse files
committed
EssentialType: Combine binary cases
Reduce repitition through combining cases.
1 parent 9dc3f18 commit 29420e9

File tree

1 file changed

+9
-17
lines changed

1 file changed

+9
-17
lines changed

c/misra/src/codingstandards/c/misra/EssentialTypes.qll

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -320,29 +320,21 @@ class EssentialBinaryOperationSubjectToUsualConversions extends EssentialExpr, B
320320
rightEssentialTypeCategory = getEssentialTypeCategory(rightEssentialType)
321321
|
322322
if
323-
leftEssentialTypeCategory = EssentiallySignedType() and
324-
rightEssentialTypeCategory = EssentiallySignedType()
323+
leftEssentialTypeCategory = rightEssentialTypeCategory and
324+
leftEssentialTypeCategory =
325+
[EssentiallyUnsignedType(), EssentiallySignedType().(TEssentialTypeCategory)]
325326
then
326327
if exists(getValue())
327-
then result = stlr(this)
328-
else (
328+
then (
329+
leftEssentialTypeCategory = EssentiallySignedType() and result = stlr(this)
330+
or
331+
leftEssentialTypeCategory = EssentiallyUnsignedType() and result = utlr(this)
332+
) else (
329333
if leftEssentialType.getSize() > rightEssentialType.getSize()
330334
then result = leftEssentialType
331335
else result = rightEssentialType
332336
)
333-
else
334-
if
335-
leftEssentialTypeCategory = EssentiallyUnsignedType() and
336-
rightEssentialTypeCategory = EssentiallyUnsignedType()
337-
then
338-
if exists(getValue())
339-
then result = utlr(this)
340-
else (
341-
if leftEssentialType.getSize() > rightEssentialType.getSize()
342-
then result = leftEssentialType
343-
else result = rightEssentialType
344-
)
345-
else result = this.getStandardType()
337+
else result = this.getStandardType()
346338
)
347339
}
348340
}

0 commit comments

Comments
 (0)