http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54463
--- Comment #3 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2012-09-03 13:38:36 UTC --- On Mon, Sep 03, 2012 at 06:14:22AM +0000, burnus at gcc dot gnu.org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54463 > > Tobias Burnus <burnus at gcc dot gnu.org> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |burnus at gcc dot gnu.org > Severity|enhancement |normal > > --- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-09-03 > 06:14:22 UTC --- > The following should work. I am not too kind to have magic numbers, maybe that > part could be improved. > > --- a/gcc/fortran/trans-intrinsic.c > +++ b/gcc/fortran/trans-intrinsic.c > @@ -2364,4 +2364,3 @@ gfc_conv_intrinsic_funcall (gfc_se * se, gfc_expr * > expr) > && (sym->ts.type == BT_REAL || sym->ts.type == BT_COMPLEX) > - && (sym->ts.kind == gfc_default_real_kind > - || sym->ts.kind == gfc_default_double_kind)) > + && (sym->ts.kind == 4 || sym->ts.kind == 8)) What about -freal-4-real-10 -freal-4-real-16 -freal-4-real-8 -freal-8-real-10 -freal-8-real-16 and -freal-8-real-4? See my initial response. The correct solution it write proper Fortran.