[previous] 1258 [next] Suffixed integer constant cast to a different integral type.
Arithmetic type - Casts

An integer constant is being cast to a different integral type. Is this intended ? Perhaps the suffix is inappropriate ?

Message 1258 is generated if the constant is suffixed. Message 1259 is generated if the constant is unsuffixed. Neither message is generated if the cast is to a type of lower rank than int.

For example:


/*PRQA S 1278,2017,3120,3198,3408,3447 ++*/
/**********************************
 * OPTIONS: -ex LONGLONG
 *********************************/

extern int           sia;
extern unsigned int  uia;
extern long          sla;
extern unsigned long ula;

extern void foo(void)
{
    sia = (int)1234UL;               /* Message 1258 */
    sia = (int)1234U;                /* Message 1258 */

    uia = (unsigned int)1234UL;      /* Message 1258 */
    uia = (unsigned int)1234L;       /* Message 1258 */

    ula = (unsigned long)1234U;      /* Message 1258 */
    ula = (unsigned long)1234L;      /* Message 1258 */

    sla = (long)1234UL;              /* Message 1258 */
    sla = (long)1234U;               /* Message 1258 */


    uia = (unsigned int)1234;        /* Message 1259 */
    sla = (long)1234;                /* Message 1259 */
    ula = (unsigned long)1234;       /* Message 1259 */
}

See also:

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