I'd like to get warnings on loss of data during implicit conversions

John Graham johngavingraham@googlemail.com
Mon Sep 20 16:17:00 GMT 2010

-Wconversion should do exactly what you want - at least it does for me
in this example:


#include <stdint.h>
int main(void)
    int32_t l;
    int16_t s = l;


$ gcc test.c
$ gcc test.c -Wconversion
test.c: In function ‘main’:
test.c:6: warning: conversion to ‘int16_t’ from ‘int32_t’ may alter its value


If it doesn't work for you, are you sure that the conversion you're
expecting to produce a warning is *really* a narrowing conversion?

John G

On Mon, Sep 20, 2010 at 4:15 PM, Jeff Saremi <jeffsaremi@yahoo.com> wrote:
> When i compile my c or C++ code under Microsoft compiler I get warnings like the following:
> warning C4244: 'argument' : conversion from 'unsigned long' to 'uint16
> ', possible loss of data
> However, compiling the same code with Gcc/G++ does not produce this warning at all?
> My question is:
> - is this a standard (i mean ISO) warning? or is it a courtesy warning?
> - Does gcc have something similar to this? If so which option is that?
> I have tried the following individiaully and in combination to no avail:
> -Wall, -Wextra, -Wconversion
> thanks
> jeff

More information about the Gcc-help mailing list