http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34040
--- Comment #13 from Oleg Endo <olegendo at gcc dot gnu.org> --- (In reply to Francois-Xavier Coudert from comment #11) > As far as I can say, the targets with this problem are: avr, bfin, h8300, > picochip and sh (for some subtargets of sh). > > On avr, bfin, h8300 and picochip, we're doomed anyway because there is no > double-sized type at all. On sh, we could use long double math calls. > > I'm making this into an enhancement; it will probably be very painful, > because most of the front-end assumes FLOAT_TYPE_SIZE == 32 and > DOUBLE_TYPE_SIZE == 64. I think it would be easier to leave DOUBLE_TYPE_SIZE == 64 in all cases and use software fp if the hardware can't do double precision. If users insist on doubles being automatically truncated to floats then there should be a compiler switch for that. E.g. on SH we have -m4-single-only option to control this. On SH2E code would then use hardware fp for floats and software fp for doubles by default.