diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/iresolve.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 7a80bfd..dc5a09e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2007-08-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + PR fortran/30947 + * iresolve.c (gfc_resolve_alarm_sub): Suffix the subroutine name + with the kind of the STATUS argument. + +2007-08-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + PR fortran/30948 * intrinsic.c (add_functions): Fix name of argument to CHDIR. diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index 21ec605..d0a73bf 100644 --- a/gcc/fortran/iresolve.c +++ b/gcc/fortran/iresolve.c @@ -2385,15 +2385,19 @@ gfc_resolve_alarm_sub (gfc_code *c) ts.type = BT_INTEGER; ts.kind = gfc_c_int_kind; - /* handler can be either BT_INTEGER or BT_PROCEDURE */ + /* handler can be either BT_INTEGER or BT_PROCEDURE. + In all cases, the status argument is of default integer kind + (enforced in check.c) so that the function suffix is fixed. */ if (handler->ts.type == BT_INTEGER) { if (handler->ts.kind != gfc_c_int_kind) gfc_convert_type (handler, &ts, 2); - name = gfc_get_string (PREFIX ("alarm_sub_int")); + name = gfc_get_string (PREFIX ("alarm_sub_int_i%d"), + gfc_default_integer_kind); } else - name = gfc_get_string (PREFIX ("alarm_sub")); + name = gfc_get_string (PREFIX ("alarm_sub_i%d"), + gfc_default_integer_kind); if (seconds->ts.kind != gfc_c_int_kind) gfc_convert_type (seconds, &ts, 2); |