(self, data)
| 2394 | # self.reportError(token, 9, 5) |
| 2395 | |
| 2396 | def misra_10_1(self, data): |
| 2397 | for token in data.tokenlist: |
| 2398 | if not token.isOp: |
| 2399 | continue |
| 2400 | |
| 2401 | for t1, t2 in itertools.product( |
| 2402 | list(getTernaryOperandsRecursive(token.astOperand1) or [token.astOperand1]), |
| 2403 | list(getTernaryOperandsRecursive(token.astOperand2) or [token.astOperand2]), |
| 2404 | ): |
| 2405 | e1 = getEssentialTypeCategory(t1) |
| 2406 | e2 = getEssentialTypeCategory(t2) |
| 2407 | if not e1 or not e2: |
| 2408 | continue |
| 2409 | if token.str in ('<<', '>>'): |
| 2410 | if not isUnsignedType(e1): |
| 2411 | self.reportError(token, 10, 1) |
| 2412 | elif not isUnsignedType(e2) and not token.astOperand2.isNumber: |
| 2413 | self.reportError(token, 10, 1) |
| 2414 | elif token.str in ('~', '&', '|', '^'): |
| 2415 | e1_et = getEssentialType(token.astOperand1) |
| 2416 | e2_et = getEssentialType(token.astOperand2) |
| 2417 | if e1_et == 'char' or e2_et == 'char': |
| 2418 | self.reportError(token, 10, 1) |
| 2419 | |
| 2420 | def misra_10_2(self, data): |
| 2421 | def isEssentiallySignedOrUnsigned(op): |
nothing calls this directly
no test coverage detected