MISRA Discussion Forums

Full Version: A question for Rule8.13
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have a question for the Rule8.13.

The rule8.13 is
A pointer should point to a const-qualified type whenever possible

A pointer parameter in a function prototype should be declared as pointer to const if the pointer is not used to modify the addressed object


However,
target of the rule16.7 on MISRAC-2004 is "pointer parameter in a fuction".

Why do you delete "pointer parameter in a function"?

Please tell me the reason.


Best Regards,
Kumiko Itoh
Rule 8.13 covers all pointers, which includes the "pointer parameter to function" that was covered by rule 16.7 in MISRA-C:2004.

It was felt that programmers should be encouraged to use const where possible and not just on function parameters.
Code:
int32_t fn ( int32_t *ptr )  /* not compliant */
{
   int32_t *myptr = ptr;     /* not compliant */
   return *myptr;
}

int32_t fn2 ( const int32_t *ptr2 )  /* compliant */
{
   const int32_t *myptr2 = ptr2;     /* compliant */
   return *myptr2;
}