Again on rule 11.2 and Exemplar Suite

6.11 Pointer Type Conversions

Moderators: misra-c, david ward

Post Reply
Posts: 11
Joined: Wed Jun 04, 2008 10:33 pm
Company: University of Parma, Italy

Again on rule 11.2 and Exemplar Suite

Post by roberto » Sat Feb 14, 2009 3:57 pm

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

Re: Again on rule 11.2 and Exemplar Suite

Post by misra-c » Tue Apr 07, 2009 4:46 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

Post Reply

Return to “6.11 Pointer Type Conversions”