[previous] 0591 [next] [C] A 'case' label must be an integral constant expression.
Constraint violations REFERENCE - ISO:C90-6.6.4.2 The switch Statement - Constraints

This is a constraint error

The case label is not an integral constant expression. For example:


/*PRQA S 1263,1269,2016,3227,3408 ++*/

#define A 1
#define B (int)2.
#define C 3.5
#define D (int)(2.2 * 2.5)

void foo(int n)
{
   switch(n)
   {
   case A:           /* OK: integer constant */
      break;
   case B:           /* OK: float cast to int */
      break;
   case C:           /* Message 0591: float expression */
      break;
   case D:           /* Message 0591: not an integral constant expression */
      break;
   default:
      break;
   }
}

QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents