diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9e727ca7a0b8de63ddd6c041bc88da00d5de8daa..6ab8f192010f4357427e1b50d90d169fc55ae448 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2004-08-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> + + * check.c (gfc_check_atan2): New function. + * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2 + * intrinsic.h (gfc_check_atan2): Add prototype. + 2004-08-25 Richard Henderson <rth@redhat.com> * arith.c (gfc_validate_kind): Add may_fail argument; abort if diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index acf16c5362adf2279fb679686715c50a998fe63d..32de055789332a3efd9fe18f2423fa22d4bc0a48 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -513,6 +513,18 @@ gfc_check_associated (gfc_expr * pointer, gfc_expr * target) } +try +gfc_check_atan2 (gfc_expr * y, gfc_expr * x) +{ + if (type_check (y, 0, BT_REAL) == FAILURE) + return FAILURE; + if (same_type_check (y, 0, x, 1) == FAILURE) + return FAILURE; + + return SUCCESS; +} + + try gfc_check_btest (gfc_expr * i, gfc_expr * pos) { diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c index 2784a7a03eabd36eb8f58c179a77d2679ca9c24c..ec344c7a6469ab24b1024da1f3a8615901c7ae8a 100644 --- a/gcc/fortran/intrinsic.c +++ b/gcc/fortran/intrinsic.c @@ -975,7 +975,7 @@ add_functions (void) make_generic ("atan", GFC_ISYM_ATAN); add_sym_2 ("atan2", 1, 1, BT_REAL, dr, - NULL, gfc_simplify_atan2, gfc_resolve_atan2, + gfc_check_atan2, gfc_simplify_atan2, gfc_resolve_atan2, y, BT_REAL, dr, 0, x, BT_REAL, dr, 0); add_sym_2 ("datan2", 1, 1, BT_REAL, dd, diff --git a/gcc/fortran/intrinsic.h b/gcc/fortran/intrinsic.h index d09bcd029640f22413b9f8dda631cde93aec272b..ef4fad578707c7615c9e8431337015da422c57b1 100644 --- a/gcc/fortran/intrinsic.h +++ b/gcc/fortran/intrinsic.h @@ -34,6 +34,7 @@ try gfc_check_abs (gfc_expr *); try gfc_check_all_any (gfc_expr *, gfc_expr *); try gfc_check_allocated (gfc_expr *); try gfc_check_associated (gfc_expr *, gfc_expr *); +try gfc_check_atan2 (gfc_expr *, gfc_expr *); try gfc_check_btest (gfc_expr *, gfc_expr *); try gfc_check_char (gfc_expr *, gfc_expr *); try gfc_check_cmplx (gfc_expr *, gfc_expr *, gfc_expr *);