[previous] 4447 [next] A constant expression of 'essentially unsigned' type (%1s) is being converted to signed type, '%2s' on assignment.
Arithmetic type - Assignment

This message is issued whenever a constant expression of essentially unsigned type undergoes an assigning conversion to a signed integer type.

For example:


/*PRQA S 1-9999 ++*/
/*PRQA S 4447,1291 --*/

void foo (int b);

int f4447 (void)
{
  int sia = (1u + 1u);      /* 4447 */

  foo (2u * 3u);            /* 4447 */

  foo (1u);                 /* 1291 */

  sia = (~0u);              /* 4447 */

  return (+0u);             /* 4447 */
}

Note that message 1291 will be generated for a constant instead.

See also:

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