![]() |
![]() |
0591 | ![]() |
||||
![]() | |||||||
| 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;
}
}
MISRA C:2012 Rules applicable to message 0591:
| Rule-1.1 (Required) | The program shall contain no violations of the standard C syntax and constraints, and shall not exceed the implementation's translation limits |
![]() | ||
| QA·C Source Code Analyser 8.1
MISRA C:2012 Compliance Module 1.0 © 2012 Programming Research. www.programmingresearch.com | Personality Groups | Glossary | Message Index | MISRA C:2012 Rule Index | Contents |