Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MISRA2004 Rule 17.4 How to solve the Rule violation
#1
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:
#include
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;
}
<t></t>
Reply
#2
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.
<t></t>
Reply
#3
There is no violation of rule 17.4.
Posted by and on behalf of the MISRA C Working Group
Reply
#4
Question moved here to the correct location
Dr David Ward
MISRA Project Manager
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)