[previous] 0558 [next] [C] Right operand of '+=' or '-=' must have integral type when left operand is a pointer.
Constraint violations REFERENCE - ISO:C90-6.3.16.2 Compound Assignment - Constraints

This is a constraint error

If the left hand operand of a += or -= operator is a pointer, the right hand operand must be of integral type. For example:


/*PRQA S 488,510,3120,3227,3408,3447 ++*/

extern float ft;
extern int * pi;
extern int * pj;

void foo(float dec)
{
    ft += dec;                /* OK */
    pi += 2;                  /* OK */
    pi += dec;                /* Message 0558 */
    pi += pj;                 /* Message 0558 */

    ft -= dec;                /* OK */
    pi -= 2;                  /* OK */
    pi -= dec;                /* Message 0558 */
    pi -= pj;                 /* Message 0558 */
}

See also:

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