X-Git-Url: https://gcc.gnu.org/git/?a=blobdiff_plain;f=gcc%2Ffortran%2Fcheck.c;h=392086429b425ae15e383f41423b27d086285612;hb=d8fe26b2cd7073e13d2a4c8bc0d4f4d310050ce1;hp=a010dce6e77eb4bc7d62639e171c539a6d9e9236;hpb=9d64df18fd9175749aea2742096b172f59a5ebeb;p=gcc.git diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index a010dce6e77e..392086429b42 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -525,6 +525,28 @@ gfc_check_atan2 (gfc_expr * y, gfc_expr * x) } +/* BESJN and BESYN functions. */ + +try +gfc_check_besn (gfc_expr * n, gfc_expr * x) +{ + + if (scalar_check (n, 0) == FAILURE) + return FAILURE; + + if (type_check (n, 0, BT_INTEGER) == FAILURE) + return FAILURE; + + if (scalar_check (x, 1) == FAILURE) + return FAILURE; + + if (type_check (x, 1, BT_REAL) == FAILURE) + return FAILURE; + + return SUCCESS; +} + + try gfc_check_btest (gfc_expr * i, gfc_expr * pos) { @@ -728,6 +750,22 @@ gfc_check_eoshift (gfc_expr * array, gfc_expr * shift, gfc_expr * boundary, } +/* This is used for the g77 one-argument Bessel functions, and the + error function. */ + +try +gfc_check_g77_math1 (gfc_expr * x) +{ + + if (scalar_check (x, 0) == FAILURE) + return FAILURE; + + if (type_check (x, 0, BT_REAL) == FAILURE) + return FAILURE; + + return SUCCESS; +} + try gfc_check_huge (gfc_expr * x) @@ -1963,6 +2001,9 @@ gfc_check_system_clock (gfc_expr * count, gfc_expr * count_rate, try gfc_check_irand (gfc_expr * x) { + if (x == NULL) + return SUCCESS; + if (scalar_check (x, 0) == FAILURE) return FAILURE; @@ -1978,6 +2019,9 @@ gfc_check_irand (gfc_expr * x) try gfc_check_rand (gfc_expr * x) { + if (x == NULL) + return SUCCESS; + if (scalar_check (x, 0) == FAILURE) return FAILURE; @@ -2055,3 +2099,127 @@ gfc_check_etime_sub (gfc_expr * values, gfc_expr * time) return SUCCESS; } + + +try +gfc_check_getcwd_sub (gfc_expr * cwd, gfc_expr * status) +{ + + if (type_check (cwd, 0, BT_CHARACTER) == FAILURE) + return FAILURE; + + if (status == NULL) + return SUCCESS; + + if (scalar_check (status, 1) == FAILURE) + return FAILURE; + + if (type_check (status, 1, BT_INTEGER) == FAILURE) + return FAILURE; + + return SUCCESS; +} + + +try +gfc_check_exit (gfc_expr * status) +{ + + if (status == NULL) + return SUCCESS; + + if (type_check (status, 0, BT_INTEGER) == FAILURE) + return FAILURE; + + if (scalar_check (status, 0) == FAILURE) + return FAILURE; + + return SUCCESS; +} + + +try +gfc_check_umask (gfc_expr * mask) +{ + + if (type_check (mask, 0, BT_INTEGER) == FAILURE) + return FAILURE; + + if (scalar_check (mask, 0) == FAILURE) + return FAILURE; + + return SUCCESS; +} + + +try +gfc_check_umask_sub (gfc_expr * mask, gfc_expr * old) +{ + + if (type_check (mask, 0, BT_INTEGER) == FAILURE) + return FAILURE; + + if (scalar_check (mask, 0) == FAILURE) + return FAILURE; + + if (old == NULL) + return SUCCESS; + + if (scalar_check (old, 1) == FAILURE) + return FAILURE; + + if (type_check (old, 1, BT_INTEGER) == FAILURE) + return FAILURE; + + return SUCCESS; +} + + +try +gfc_check_unlink (gfc_expr * name) +{ + + if (type_check (name, 0, BT_CHARACTER) == FAILURE) + return FAILURE; + + return SUCCESS; +} + + +try +gfc_check_unlink_sub (gfc_expr * name, gfc_expr * status) +{ + + if (type_check (name, 0, BT_CHARACTER) == FAILURE) + return FAILURE; + + if (status == NULL) + return SUCCESS; + + if (scalar_check (status, 1) == FAILURE) + return FAILURE; + + if (type_check (status, 1, BT_INTEGER) == FAILURE) + return FAILURE; + + return SUCCESS; +} + + +try +gfc_check_system_sub (gfc_expr * cmd, gfc_expr * status) +{ + if (type_check (cmd, 0, BT_CHARACTER) == FAILURE) + return FAILURE; + + if (scalar_check (status, 1) == FAILURE) + return FAILURE; + + if (type_check (status, 1, BT_INTEGER) == FAILURE) + return FAILURE; + + if (kind_value_check (status, 1, gfc_default_integer_kind) == FAILURE) + return FAILURE; + + return SUCCESS; +}