Page 1 of 1

MISRA2004 Rule 17.4 How to solve the Rule violation

Posted: Tue Feb 19, 2019 4:17 am
by Tejas Kore
I have an issue regarding the rule violation in which I'm using a 2D array inside a structure and apparently The Rule 17.4 says it isn't compliant. Is Declaring arryas inside a structure/union not compliant and why is it so? What exactly is the alternative for it?
Help would be appreciated ASAP. Following is the example code. Thanks in advance.

Code: Select all

#include <stdio.h>
void func1(unsigned char abc);

typedef struct teststructure
{
   float buf[5][3];
}teststruct;

int main()
{
   unsigned char abc;

   func1(abc);

}

void func1(unsigned char abc)
{
   teststruct TEST;

   float fData = 54.0;
   TEST.buf[2][1] = fData;
}

Re: MISRA2004 Rule 17.4 How to solve the Rule violation

Posted: Wed Feb 20, 2019 7:25 am
by dg1980
This is most likely a false positive from the static analysis tool you are using.
Rule 17.4 bans pointer arithmetic but in your sample you use array indexing only, so it is compliant.
I suggest contacting your tool vendors support.

Re: MISRA2004 Rule 17.4 How to solve the Rule violation

Posted: Thu Mar 07, 2019 9:36 am
by misra-c
There is no violation of rule 17.4.

Re: MISRA2004 Rule 17.4 How to solve the Rule violation

Posted: Tue Apr 30, 2019 3:56 pm
by david ward
Question moved here to the correct location