Our website uses cookies to enhance your browsing experience.
Accept
to the top
>
>
>
V2503. MISRA. Implicitly specified...
menu mobile close menu
Analyzing projects
Additional information
toggle menu Contents

V2503. MISRA. Implicitly specified enumeration constants should be unique – consider specifying non-unique constants explicitly.

Nov 19 2018

This diagnostic rule is based on the software development guidelines developed by MISRA (Motor Industry Software Reliability Association).

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 rule is classified as:

  • MISRA-C-2012-Rule-8.12
  • MISRA-C-2023-Rule-8.12
  • MISRA-CPP-2023-Rule-11.6.3