https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82143
--- Comment #3 from janus at gcc dot gnu.org --- (In reply to kargl from comment #2) > Actaully, the -fdefault-real* and -fdefault-integer-* options > should be deprecated. These options are broken by design, I don't know what that means. And no one else does, because the documentation does not say anything about it. > and probably do not do what one wants. That depends on what you want, I guess. What they do is documented rather clearly, isn't it? So, people with reading abilities should be able to use them without any surprises. > Use the -freal-4-real-16 (and similar options). From the documentation of those options it sounds like they only affect variables with explicit kind declaration, but not those with implicit / default kind. If that is true, they are not able to fully replace the unbeloved -fdefault-real-* options. If it is not true, obviously the documentation needs to be improved. > % cat cat a.f90 > program foo > real x > x = 1. / 3. > print *, x > end program foo > % gfortran6 -static -o z a.f90 && ./z > 0.333333343 > % gfortran6 -static -o z -freal-4-real-16 a.f90 && ./z > 0.333333333333333333333333333333333317 Your test case seems to suggest that the latter of the two aforementioned options is true. From earlier experiments I believe I remember the opposite, though. So either the implementation has changed over time, or I'm just misremembering ...