This diagnostic rule is based on the software development guidelines developed by MISRA (Motor Industry Software Reliability Association).
This diagnostic rule is relevant only to C-programs. The analyzer has detected a non-unique value among implicitly initialized enumeration elements, which leads to creation of duplicate constant values.
Here is an example of incorrect code:
enum Suits { SUITS_SPADES = 1, SUITS_CLUBS, SUITS_DIAMONDS, SUITS_HEARTS, SUITS_UNKNOWN = 4 };
The way the constants are initialized here results in assigning the same values to the elements 'SUITS_HEARTS' and 'SUITS_UNKNOWN'. It is not clear if this was done on purpose or by mistake.
To avoid errors like that, make sure you explicitly initialize all enumeration elements that have non-unique values:
enum Suits { SUITS_SPADES = 1, SUITS_CLUBS, SUITS_DIAMONDS, SUITS_HEARTS = 4, SUITS_UNKNOWN = 4 };
This diagnostic is classified as:
|