Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rule 7.0.5, example non-compliant with 7.0.6?
#2
"... Yes, compliant with 7.0.5. But this code then violates 7.0.6, since there is an implicit narrowing conversion from uint32_t to uint8_t in the assignment, right?"

No. The introduction to the section that includes 7.0.5. and 7.0.6 says "Note: compound assignments are not assignments", so 7.0.6 does not apply to a compound assignment.

We recognise that it may be surprising that a += b; is treated differently to a = a + b; but we failed to find an acceptable form of words to say 'treat a = a + ....' as 'a += ....'

The example: u8a += static_cast< uint32_t >( u8b ); is correct and compliant
Posted by and on behalf of
the MISRA C++ Working Group
Reply


Messages In This Thread
RE: Rule 7.0.5, example non-compliant with 7.0.6? - by misra cpp - 19-05-2025, 03:30 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)