PING [gfortran] PATCH: Fix achar's lack of a check function

Steve Kargl sgk@troutmask.apl.washington.edu
Fri Feb 11 00:36:00 GMT 2005


On Mon, Jan 31, 2005 at 04:11:28PM -0800, Steve Kargl wrote:
> With out the attached patch, the attached test case would
> not compile.
> 
> 2005-01-31  Steven G. Kargl  <kargls@comcast.net>
> 
>        * check.c (gfc_check_achar): New function
>        * intrinsic.h: Prototype it.
>        * intrinsic.c (add_function): Use it.
> 
> -- 
> Steve

> program  bug6
>   integer(1) :: i = 65
>   character a
>   a = achar(i)
>   if (a /= 'A') call abort
> end program  bug6

> Index: check.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/fortran/check.c,v
> retrieving revision 1.23
> diff -u -r1.23 check.c
> --- check.c	29 Jan 2005 17:46:30 -0000	1.23
> +++ check.c	1 Feb 2005 00:07:54 -0000
> @@ -401,6 +401,16 @@
>    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: intrinsic.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/fortran/intrinsic.c,v
> retrieving revision 1.38
> diff -u -r1.38 intrinsic.c
> --- intrinsic.c	29 Jan 2005 17:46:31 -0000	1.38
> +++ intrinsic.c	1 Feb 2005 00:07:54 -0000
> @@ -894,7 +894,7 @@
>    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: intrinsic.h
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/fortran/intrinsic.h,v
> retrieving revision 1.21
> diff -u -r1.21 intrinsic.h
> --- intrinsic.h	29 Jan 2005 17:46:31 -0000	1.21
> +++ intrinsic.h	1 Feb 2005 00:07:54 -0000
> @@ -31,6 +31,7 @@
>  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 *);


-- 
Steve



More information about the Fortran mailing list