http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53001
--- Comment #30 from Joshua Cogliati <jjcogliati-r1 at yahoo dot com> --- Yes, it is fixed so far as I am concerned. I checked out gcc trunk 205109, and bootstraped it and tried it out on: int main(int argc, char ** argv) { int i = 3.14; return i; } int foo(double x) { return x; } float foo2(double x) { return x; } and without the flag it didn't warn, but with the flag it did: gcc -Wall -Wfloat-conversion -o float_test float_test.c float_test.c: In function ‘main’: float_test.c:2:3: warning: conversion to ‘int’ alters ‘double’ constant value [-Wfloat-conversion] int i = 3.14; ^ float_test.c: In function ‘foo’: float_test.c:8:3: warning: conversion to ‘int’ from ‘double’ may alter its value [-Wfloat-conversion] return x; ^ float_test.c: In function ‘foo2’: float_test.c:12:3: warning: conversion to ‘float’ from ‘double’ may alter its value [-Wfloat-conversion] return x; ^ I think there are two things remaining to be done. 1. http://gcc.gnu.org/gcc-4.9/changes.html does not yet list it as a change, 2. for gcc 4.10 (or what ever the next gcc version is) I think it might be worth considering as a -Wextra or -Wall. That however would be a separate bug number and would require something like the Patch to fixup gcc float conversions in GCC and another patch to turn it on with the flag.