[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:2012 Rules applicable to message 4511:

Rule-10.1  (Required) Operands shall not be of an inappropriate essential type.


See also:

QA·C Source Code Analyser 8.1
MISRA C:2012 Compliance Module 1.0
© 2012 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index | MISRA C:2012 Rule Index Contents