[previous] 1863 [next] The operands of this equality operator are of different 'essential signedness' but will both be promoted to 'signed int' for comparison.
Arithmetic type - Balancing

The operands of this equality operator are of different essential type categories; one is 'essentially signed' and the other is 'essentially unsigned'. Both essential types are of lower rank than type int but the comparison will be performed in type int because of integral promotion.

For example:


/*PRQA S 1-9999 ++*/
/*PRQA S 1863 --*/

void f1863 (signed char a, unsigned char b)
{
  if (b == a)               /* 1863 */
  {
  }
}

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