diff options
Diffstat (limited to 'gcc/fortran/check.c')
-rw-r--r-- | gcc/fortran/check.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index dbb1aa0..1971db0 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -2755,9 +2755,15 @@ gfc_check_kill (gfc_expr *pid, gfc_expr *sig) if (!type_check (pid, 0, BT_INTEGER)) return false; + if (!scalar_check (pid, 0)) + return false; + if (!type_check (sig, 1, BT_INTEGER)) return false; + if (!scalar_check (sig, 1)) + return false; + return true; } @@ -2786,6 +2792,13 @@ gfc_check_kill_sub (gfc_expr *pid, gfc_expr *sig, gfc_expr *status) if (!scalar_check (status, 2)) return false; + if (status->ts.kind != 4 && status->ts.kind != 8) + { + gfc_error ("Invalid kind type parameter for STATUS at %L", + &status->where); + return false; + } + return true; } |