[previous] 0513 [next] [C] Relational operator used to compare pointers to incompatible types.
Constraint violations REFERENCE - ISO:C90-6.3.8 Relational Operators - Constraints

This is a constraint error

A relational operator is being used to compare operands which have incompatible pointer types. A relational operator can only be used when:

For example:


/*PRQA S 490,3408,3447,3602,3625,3684 ++*/

extern int        *pi;
extern char       *pc1;
extern const char *pc2;
extern int         buf1[];
extern float       buf2[];

void foo(void)
{
    if (pi < pc1)            /* Message 0513 */
    {
    }

    if (buf1 > buf2)         /* Message 0513 */
    {
    }

    if (pc1 < pc2)           /* OK           */
    {
    }
}


MISRA-C:2004 Rules applicable to message 0513:

Rule  1.1  (Required) All code shall conform to ISO/IEC 9899:1990 C programming language, ISO 9899, amended and corrected by ISO/IEC 9899/COR1:1995, ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2: 1996192


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