Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Again on rule 11.2 and Exemplar Suite
#1
I agree that one should not write code like

Code:
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?
Thanks,

Roberto

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.
<t></t>
Reply
#2
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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)