diff options
author | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-06 23:02:38 +0000 |
---|---|---|
committer | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-06 23:02:38 +0000 |
commit | 40555542b7fab2e5b54b7356f51ae1a322127712 (patch) | |
tree | 22a8fdfdc53e25a6f6189de25babaa2d78f182d8 /gcc/fortran/iresolve.c | |
parent | 3ccfa1cbd448bfd037bfd102bf0d7ccebbc30cee (diff) | |
download | gcc-40555542b7fab2e5b54b7356f51ae1a322127712.tar.gz |
PR fortran/30947
* iresolve.c (gfc_resolve_alarm_sub): Suffix the subroutine name
with the kind of the STATUS argument.
* intrinsics/signal.c: Create specific versions of alarm_sub and
alarm_sub_int according to the integer kind of the last argument.
* gfortran.map (GFORTRAN_1.0): Remove _gfortran_alarm_sub and
_gfortran_alarm_sub_int, add _gfortran_alarm_sub_i4,
_gfortran_alarm_sub_i8, _gfortran_alarm_sub_int_i4 and
_gfortran_alarm_sub_int_i8.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127259 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/iresolve.c')
-rw-r--r-- | gcc/fortran/iresolve.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index 21ec6058a10..d0a73bfc8f2 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); |