Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rule 10.6 An expression shall not be assigned to a wider type
#2
Appendix D.7 gives the essential type of an Shift Expression. It says:
Quote: Shift( > )
1. If the left hand operand is essentially unsigned then:
1.1 If both operands are integer constant expressions then the essential type of the result is the UTLR of the result;
1.2 Else the essential type of the result is the essential type of the left hand operand
In this case 1.2 applies and essential type is that of the left hand operand. The essential type of the left hand operand is uint32_t. There is therefore no assignment to a wider essential type and no violation of rule 10.6.

There would have been a violation of rule 10.6 if the code had been written as
[code] 1U
Posted by and on behalf of the MISRA C Working Group


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)