diff options
| author | dfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-08 21:45:22 +0000 |
|---|---|---|
| committer | dfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-08 21:45:22 +0000 |
| commit | f1a634766aaec4defc7ef45cda41ed8c498ca313 (patch) | |
| tree | d640f5fb27f6ae7143572c76657542cfd963af91 | |
| parent | 4c9596cf8bcb0ec9fe4dddb89043f6773a2f245a (diff) | |
| download | ppe42-gcc-f1a634766aaec4defc7ef45cda41ed8c498ca313.tar.gz ppe42-gcc-f1a634766aaec4defc7ef45cda41ed8c498ca313.zip | |
2007-03-08 Daniel Franke <franke.daniel@gmail.com>
PR fortran/30947
* check.c (gfc_check_alarm_sub): Added check for default integer
kind of status argument.
* iresolve.c (gfc_resolve_alarm_sub): Removed conversion of
status argument.
* intrinsic.texi (ALARM): Extended documentation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122715 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/fortran/ChangeLog | 9 | ||||
| -rw-r--r-- | gcc/fortran/check.c | 3 | ||||
| -rw-r--r-- | gcc/fortran/intrinsic.texi | 9 | ||||
| -rw-r--r-- | gcc/fortran/iresolve.c | 2 |
4 files changed, 17 insertions, 6 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 618031997a2..b3c64b7ca57 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,14 @@ 2007-03-08 Daniel Franke <franke.daniel@gmail.com> + PR fortran/30947 + * check.c (gfc_check_alarm_sub): Added check for default integer + kind of status argument. + * iresolve.c (gfc_resolve_alarm_sub): Removed conversion of + status argument. + * intrinsic.texi (ALARM): Extended documentation. + +2007-03-08 Daniel Franke <franke.daniel@gmail.com> + * intrinsic.texi (GERROR, ISATTY, TTYNAM): New. (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo. * intrinsic.c (add_subroutines): Adjusted dummy argument names diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index 27becfcb805..3b1a1a05f47 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -2999,6 +2999,9 @@ gfc_check_alarm_sub (gfc_expr *seconds, gfc_expr *handler, gfc_expr *status) if (type_check (status, 2, BT_INTEGER) == FAILURE) return FAILURE; + if (kind_value_check (status, 2, gfc_default_integer_kind) == FAILURE) + return FAILURE; + return SUCCESS; } diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi index b1aa6775397..2375e0098ee 100644 --- a/gcc/fortran/intrinsic.texi +++ b/gcc/fortran/intrinsic.texi @@ -785,7 +785,7 @@ end program test_aint @table @asis @item @emph{Description}: @code{ALARM(SECONDS, HANDLER [, STATUS])} causes external subroutine @var{HANDLER} -to be executed after a delay of @var{SECONDS} by using @code{alarm(1)} to +to be executed after a delay of @var{SECONDS} by using @code{alarm(2)} to set up a signal and @code{signal(2)} to catch it. If @var{STATUS} is supplied, it will be returned with the number of seconds remaining until any previously scheduled alarm was due to be delivered, or zero if there @@ -805,10 +805,11 @@ Subroutine @item @var{SECONDS} @tab The type of the argument shall be a scalar @code{INTEGER}. It is @code{INTENT(IN)}. @item @var{HANDLER} @tab Signal handler (@code{INTEGER FUNCTION} or -@code{SUBROUTINE}) or dummy/global @code{INTEGER} scalar. -@code{INTEGER}. It is @code{INTENT(IN)}. +@code{SUBROUTINE}) or dummy/global @code{INTEGER} scalar. The scalar +values may be either @code{SIG_IGN=1} to ignore the alarm generated +or @code{SIG_DFL=0} to set the default action. It is @code{INTENT(IN)}. @item @var{STATUS} @tab (Optional) @var{STATUS} shall be a scalar -@code{INTEGER} variable. It is @code{INTENT(OUT)}. +variable of the default @code{INTEGER} kind. It is @code{INTENT(OUT)}. @end multitable @item @emph{Example}: diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index 21897dd3789..12ecd061e69 100644 --- a/gcc/fortran/iresolve.c +++ b/gcc/fortran/iresolve.c @@ -2386,8 +2386,6 @@ gfc_resolve_alarm_sub (gfc_code *c) if (seconds->ts.kind != gfc_c_int_kind) gfc_convert_type (seconds, &ts, 2); - if (status != NULL && status->ts.kind != gfc_c_int_kind) - gfc_convert_type (status, &ts, 2); c->resolved_sym = gfc_get_intrinsic_sub_symbol (name); } |

