Page 1 of 1

Rule 0-1-6 Variables being given values that are never used.

Posted: Fri Jan 17, 2020 5:34 pm
by LordMordac
The actual rule is:
A project shall not contain instances of non-volatile variables being given values that are never subsequently used.
There has been a lot of discussion as to what that sentence actually means. One camp believes that this rule applies to DU dataflow anomalies only, and the other believes that it applies to DU and DD dataflow anomalies.

For example the following code contains a DD dataflow anomaly, but not a DU dataflow anomaly. Is it a Rule 0-1-6 violation?

Code: Select all

int32_t foobar (int32_t const value)
{
    int32_t returnValue = value;
    if (value < 0)
    {
        returnValue = 0;
    }
    return returnValue;
}
This debate is influencing discussions on the merits of variable initialization.

Re: Rule 0-1-6 Variables being given values that are never used.

Posted: Wed Jan 22, 2020 10:24 am
by misra cpp
The rule was intended to address DU anomalies only.

Note that the rationale in the MISRA standard for this rule starts “Technically known as a DU dataflow anomaly…”

Re: Rule 0-1-6 Variables being given values that are never used.

Posted: Fri Jan 24, 2020 5:25 pm
by chgros
So, just to make sure, this is compliant according to this rule:

Code: Select all

int i = 1;
i = 2;
return i;