OSDN Git Service

* check.c (gfc_check_achar): New function
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 19 Feb 2005 19:16:09 +0000 (19:16 +0000)
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 19 Feb 2005 19:16:09 +0000 (19:16 +0000)
* intrinsic.h: Prototype it.
* intrinsic.c (add_function): Use it.

* gfortran.dg/achar_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95288 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/check.c
gcc/fortran/intrinsic.c
gcc/fortran/intrinsic.h
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/achar_1.f90 [new file with mode: 0644]

index e8d487a..54c37ab 100644 (file)
@@ -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,
index a63112b..0a26f29 100644 (file)
@@ -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)
index 03d443f..3c1b771 100644 (file)
@@ -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);
index 41593ef..85f3a25 100644 (file)
@@ -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 *);
index 80c4f07..6d09ca0 100644 (file)
@@ -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 (file)
index 0000000..1fdb774
--- /dev/null
@@ -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