![]() |
![]() |
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:2004 Rules applicable to message 0591:
| Rule 1.1 (Required) | All code shall conform to ISO/IEC 9899:1990 C programming language, ISO 9899, amended and corrected by ISO/IEC 9899/COR1:1995, ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2: 1996192 |
![]() | ||
| QA·C Source Code Analyser 8.1
MISRA-C:2004 Compliance Module 3.2 © 2012 Programming Research. www.programmingresearch.com | Personality Groups | Glossary | Message Index | MISRA-C:2004 Rule Index | Contents |