Commit 6110b776 by Steven G. Kargl Committed by Steven G. Kargl

re PR fortran/26816 ([4.1 only] FLOAT Intrinsic does not work with Integer Halfword input)

	PR fortran/26816
	* intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds.
	* intrinsic.texi: Document FLOAT.

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

From-SVN: r112392
parent 0853054e
2006-03-25 Steven G. Kargl <kargls@comcast.net>
PR fortran/26816
* intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds.
* intrinsic.texi: Document FLOAT.
2006-03-25 Thomas Koenig <Thomas.Koenig@online.de> 2006-03-25 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/26769 PR fortran/26769
......
...@@ -1899,7 +1899,7 @@ add_functions (void) ...@@ -1899,7 +1899,7 @@ add_functions (void)
a, BT_UNKNOWN, dr, REQUIRED); a, BT_UNKNOWN, dr, REQUIRED);
add_sym_1 ("float", 1, 0, BT_REAL, dr, GFC_STD_F77, add_sym_1 ("float", 1, 0, BT_REAL, dr, GFC_STD_F77,
NULL, gfc_simplify_float, NULL, gfc_check_i, gfc_simplify_float, NULL,
a, BT_INTEGER, di, REQUIRED); a, BT_INTEGER, di, REQUIRED);
add_sym_1 ("sngl", 1, 0, BT_REAL, dr, GFC_STD_F77, add_sym_1 ("sngl", 1, 0, BT_REAL, dr, GFC_STD_F77,
......
...@@ -88,6 +88,7 @@ and editing. All contributions and corrections are strongly encouraged. ...@@ -88,6 +88,7 @@ and editing. All contributions and corrections are strongly encouraged.
* @code{EXP}: EXP, Exponential function * @code{EXP}: EXP, Exponential function
* @code{EXPONENT}: EXPONENT, Exponent function * @code{EXPONENT}: EXPONENT, Exponent function
* @code{FDATE}: FDATE, Subroutine (or function) to get the current time as a string * @code{FDATE}: FDATE, Subroutine (or function) to get the current time as a string
* @code{FLOAT}: FLOAT, Convert integer to default real
* @code{FLOOR}: FLOOR, Integer floor function * @code{FLOOR}: FLOOR, Integer floor function
* @code{FNUM}: FNUM, File number function * @code{FNUM}: FNUM, File number function
* @code{FREE}: FREE, Memory de-allocation subroutine * @code{FREE}: FREE, Memory de-allocation subroutine
...@@ -2842,6 +2843,41 @@ end program test_fdate ...@@ -2842,6 +2843,41 @@ end program test_fdate
@end smallexample @end smallexample
@end table @end table
@node FLOAT
@section @code{FLOAT} --- Convert integer to default real
@findex @code{FLOAT} intrinsic
@cindex floor
@table @asis
@item @emph{Description}:
@code{FLOAT(I)} converts the integer @var{I} to a default real value.
@item @emph{Option}:
gnu
@item @emph{Class}:
function
@item @emph{Syntax}:
@code{X = FLOAT(I)}
@item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{I} @tab The type shall be @code{INTEGER(*)}.
@end multitable
@item @emph{Return value}:
The return value is of type default @code{REAL}
@item @emph{Example}:
@smallexample
program test_float
integer :: i = 1
if (float(i) /= 1.) call abort
end program test_float
@end smallexample
@end table
@node FLOOR @node FLOOR
@section @code{FLOOR} --- Integer floor function @section @code{FLOOR} --- Integer floor function
......
2006-03-25 Steven G. Kargl <kargls@comcast.net>
PR fortran/26816
* gfortran.dg/float_1.f90: New test.
2006-03-25 Steven G. Kargl <kargsl@comcast.net> 2006-03-25 Steven G. Kargl <kargsl@comcast.net>
* gfortran.dg/transfer_array_intrinsic_1.f90: Restrict to i?86 and * gfortran.dg/transfer_array_intrinsic_1.f90: Restrict to i?86 and
! { dg-do run }
! PR fortran/26816
program test_float
integer(1) :: i1 = 1
integer(2) :: i2 = 1
integer(4) :: i4 = 1
integer(8) :: i8 = 1
if (float(i1) /= 1.) call abort
if (float(i2) /= 1.) call abort
if (float(i4) /= 1.) call abort
if (float(i8) /= 1.) call abort
end program test_float
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment