MISRA Discussion Forums

Full Version: Again on rule 11.2 and Exemplar Suite
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I agree that one should not write code like

float32_1102 = ( float32_t ) void_ptr;           /* Not Compliant */
   float64_1102 = ( float64_t ) void_ptr;           /* Not Compliant */

However, my understanding is that those lines do not violate rule 11.2, even taking into account the clarification given in TC1.
Am I correct?


P.S. I read the other thread on the forum, but the question was not answered. I saw that thread is locked, and I do not know what is the right way to resurrect a discussion. Please accept my apologies if opening another discussion is not appropriate.
These examples do not violate Rule 11.2 as this rule does not cover casts between pointers to void and floating point types. However, this behaviour is implicitly undefined as this type of cast is not listed in the permitted casts (see section 6.3.4 of the ISO C standard - cast operators). It is therefore a violation of Rule 1.2.