6.11 Pointer Type Conversions
Moderators: misra-c, david ward
- Posts: 11
- Joined: Wed Jun 04, 2008 10:33 pm
- Company: University of Parma, Italy
I agree that one should not write code like
Code: Select all
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.
- Posts: 566
- Joined: Thu Jan 05, 2006 1:11 pm
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.
Posted by and on behalf of
the MISRA C Working Group