Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rule 7.0.5, example non-compliant with 7.0.6?
#3
(19-05-2025, 03:30 PM)misra cpp Wrote: "... 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

Thanks! I (and my static analyzer supplier Smile ) totally missed that little bit. As a suggestion, I think it would be good to remind about that directly inside Rule 7.0.6, in a future revision.
Reply


Messages In This Thread
RE: Rule 7.0.5, example non-compliant with 7.0.6? - by cgpzs - 20-05-2025, 09:30 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)