![]() |
![]() |
4443 | ![]() |
||||
![]() | |||||||
| Arithmetic type - Assignment | |||||||
This message is issued whenever a non-constant expression of essentially unsigned type undergoes an assigning conversion to a wider signed integer type, i.e. the configured size (with -s option) of the unsigned type is lower than that of the signed type. For example:
/*PRQA S 1-9999 ++*/
/*PRQA S 4443 --*/
void foo (int b);
int f4443 (unsigned short a)
{
int sia = a; /* 4443 */
foo (a + 1u); /* 4443 */
sia = (a - 1u); /* 4443 */
return a; /* 4443 */
}
This message identifies a safe (widening) conversion, assuming the conversion is intentional.
In this case it may be better to document the conversion with an explicit cast.
Message 4446 is generated for other unsigned to signed conversions, highlighting potential data loss.
See also:
![]() | ||
| QA·C Source Code Analyser 8.1.2
© 2013 Programming Research. www.programmingresearch.com | Personality Groups | Glossary | Message Index | Contents |