Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rule 0-1-6 Variables being given values that are never used.
#1
The actual rule is:
Quote: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:
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.
Reply
#2
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…”
Posted by and on behalf of
the MISRA C++ Working Group
Reply
#3
So, just to make sure, this is compliant according to this rule:
Code:
int i = 1;
i = 2;
return i;
Reply
#4
This is a DD anomaly, not DU, so is compliant with 0-1-6. However it ought to be regarded as having dead-code, and be reported by 0-1-9.

Unfortunately, the current wording of 0-1-9 which talks about 'removing statements' means that this isn't dead-code by 0-1-9's definition. We are looking at this for the next version
Posted by and on behalf of
the MISRA C++ Working Group
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)