aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/check.c12
-rw-r--r--gcc/fortran/intrinsic.c2
-rw-r--r--gcc/fortran/intrinsic.h1
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9e727ca..6ab8f19 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 acf16c5..32de055 100644
--- a/gcc/fortran/check.c
+++ b/gcc/fortran/check.c
@@ -514,6 +514,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 2784a7a..ec344c7 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 d09bcd0..ef4fad5 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 *);