[previous] 4511 [next] An expression of 'essentially character' type (%1s) is being used as the %2s operand of this arithmetic operator (%3s).
Arithmetic type - Operands

This message is issued whenever an expression of essentially character type has been used as an operand of an arithmetic operator. Note that the message will not be generated for the binary + or - operators.

For example:


/*PRQA S 1-9999 ++*/
/*PRQA S 4511,4517 --*/

void f4511 (char a, int b)
{
  a + b;                    /* OK: essential type of result is char */
  
  a - b;                    /* OK: essential type of result is char */
  
  a - '0';                  /* OK: essential type of result is int */
  
  a * b;                    /* 4511 */

  +a;                       /* 4511 */

  ++a;                      /* 4517 */
}


MISRA-C:2004 Rules applicable to message 4511:

Rule  6.1  (Required) The plain char type shall be used only for the storage and use of character values.


See also:

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