diff options
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/trans-types.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0a8c443..0ee880d 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2005-10-03 Steve Ellcey <sje@cup.hp.com> + + * fortran/trans-types.c (gfc_init_kinds): Only pass float, double, + and long double floating point types through to Fortran compiler. + 2005-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> PR fortran/20120 diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index 6482df8..e16db88 100644 --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -152,6 +152,14 @@ gfc_init_kinds (void) if (!targetm.scalar_mode_supported_p (mode)) continue; + /* Only let float/double/long double go through because the fortran + library assumes these are the only floating point types. */ + + if (mode != TYPE_MODE (float_type_node) + && (mode != TYPE_MODE (double_type_node)) + && (mode != TYPE_MODE (long_double_type_node))) + continue; + /* Let the kind equal the precision divided by 8, rounding up. Again, this insulates the programmer from the underlying byte size. |