Moderators: david ward, misra cpp
- Posts: 2
- Joined: Tue Jan 14, 2020 8:05 pm
- Company: nvidia
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;
This debate is influencing discussions on the merits of variable initialization.
- Posts: 150
- Joined: Mon Jun 02, 2008 1:55 pm
- Company: MISRA
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
- Posts: 1
- Joined: Wed Jan 22, 2020 11:13 pm
- Company: Synopsys Inc.
So, just to make sure, this is compliant according to this rule: