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