aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/check.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/check.c')
-rw-r--r--gcc/fortran/check.c13
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;
}