diff options
author | Steven G. Kargl <kargls@comcast.net> | 2005-02-19 19:16:09 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2005-02-19 19:16:09 +0000 |
commit | 332e7efe7fa434a998aa5634dca6d4f93810f65f (patch) | |
tree | d7990ad850e1815cb9619494567bf04eea895193 /gcc | |
parent | 6ca84a804a7378e79bbb1d5a6d646ead7e6cfa46 (diff) | |
download | gcc-332e7efe7fa434a998aa5634dca6d4f93810f65f.zip gcc-332e7efe7fa434a998aa5634dca6d4f93810f65f.tar.gz gcc-332e7efe7fa434a998aa5634dca6d4f93810f65f.tar.bz2 |
check.c (gfc_check_achar): New function
* check.c (gfc_check_achar): New function
* intrinsic.h: Prototype it.
* intrinsic.c (add_function): Use it.
* gfortran.dg/achar_1.f90: New test.
From-SVN: r95288
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/check.c | 10 | ||||
-rw-r--r-- | gcc/fortran/intrinsic.c | 2 | ||||
-rw-r--r-- | gcc/fortran/intrinsic.h | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/achar_1.f90 | 8 |
6 files changed, 30 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e8d487a..54c37ab 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2005-02-19 Steven G. Kargl <kargls@comcast.net> + + * check.c (gfc_check_achar): New function + * intrinsic.h: Prototype it. + * intrinsic.c (add_function): Use it. + 2005-02-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> * trans-stmt.c (generate_loop_for_temp_to_lhs, diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index a63112b..0a26f29 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -401,6 +401,16 @@ gfc_check_abs (gfc_expr * a) return SUCCESS; } +try +gfc_check_achar (gfc_expr * a) +{ + + if (type_check (a, 0, BT_INTEGER) == FAILURE) + return FAILURE; + + return SUCCESS; +} + try gfc_check_all_any (gfc_expr * mask, gfc_expr * dim) diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c index 03d443f..3c1b771 100644 --- a/gcc/fortran/intrinsic.c +++ b/gcc/fortran/intrinsic.c @@ -894,7 +894,7 @@ add_functions (void) make_generic ("abs", GFC_ISYM_ABS, GFC_STD_F77); add_sym_1 ("achar", 1, 1, BT_CHARACTER, dc, GFC_STD_F95, - NULL, gfc_simplify_achar, NULL, + gfc_check_achar, gfc_simplify_achar, NULL, i, BT_INTEGER, di, REQUIRED); make_generic ("achar", GFC_ISYM_ACHAR, GFC_STD_F95); diff --git a/gcc/fortran/intrinsic.h b/gcc/fortran/intrinsic.h index 41593ef..85f3a25 100644 --- a/gcc/fortran/intrinsic.h +++ b/gcc/fortran/intrinsic.h @@ -31,6 +31,7 @@ try gfc_check_a_xkind (gfc_expr *, gfc_expr *); try gfc_check_a_p (gfc_expr *, gfc_expr *); try gfc_check_abs (gfc_expr *); +try gfc_check_achar (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 *); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 80c4f07..6d09ca0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2005-02-19 Steven G. Kargl <kargls@comcast.net> + + * gfortran.dg/achar_1.f90: New test. + 2005-02-19 Hans-Peter Nilsson <hp@axis.com> * gcc.c-torture/execute/20020720-1.x: Don't XFAIL cris-*-*. diff --git a/gcc/testsuite/gfortran.dg/achar_1.f90 b/gcc/testsuite/gfortran.dg/achar_1.f90 new file mode 100644 index 0000000..1fdb774 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/achar_1.f90 @@ -0,0 +1,8 @@ +! { dg-do run } +! achar() should work with all supported integer kinds. +program bug6 + integer(1) :: i = 65 + character a + a = achar(i) + if (a /= 'A') call abort +end program bug6 |