Wrong RTL instruction deleted
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Mon Dec 27 14:49:00 GMT 2004
Presumably the Ada program would fail in the same way.
No, it won't because it uses VIEW_CONVERT_EXPR, which exists just to
support this case. We've talked about using it in C++ and/or C, but
haven't actually done that.
The .t08.gimple file for that example (with some junk deleted) is
Foo ()
{
float D.710;
foo__to_floatGP101__source D.711;
foo__to_floatGP101__target D.712;
float D.713;
typedef foo__to_floatGP101__source foo__to_floatGP101__source;
typedef foo__to_floatGP101__target foo__to_floatGP101__target;
D.711 = 2147483648;
D.712 = VIEW_CONVERT_EXPR<foo__to_floatGP101__target>(D.711);
D.713 = (float) D.712;
D.710 = D.713;
return D.710;
}
and .t65.vars (again, with junk deleted) is
Foo ()
{
foo__to_floatGP101__target D.712;
D.712 = VIEW_CONVERT_EXPR<foo__to_floatGP101__target>(2147483648);
return (float) D.712;
}
More information about the Gcc
mailing list