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
This commit is contained in:
Steven G. Kargl 2006-03-26 05:20:09 +00:00 committed by Steven G. Kargl
parent 0853054e96
commit 6110b776bc
5 changed files with 60 additions and 1 deletions

View File

@ -1,3 +1,9 @@
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>
PR fortran/26769

View File

@ -1899,7 +1899,7 @@ add_functions (void)
a, BT_UNKNOWN, dr, REQUIRED);
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);
add_sym_1 ("sngl", 1, 0, BT_REAL, dr, GFC_STD_F77,

View File

@ -88,6 +88,7 @@ and editing. All contributions and corrections are strongly encouraged.
* @code{EXP}: EXP, Exponential function
* @code{EXPONENT}: EXPONENT, Exponent function
* @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{FNUM}: FNUM, File number function
* @code{FREE}: FREE, Memory de-allocation subroutine
@ -2842,6 +2843,41 @@ end program test_fdate
@end smallexample
@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
@section @code{FLOOR} --- Integer floor function

View File

@ -1,3 +1,8 @@
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>
* gfortran.dg/transfer_array_intrinsic_1.f90: Restrict to i?86 and

View File

@ -0,0 +1,12 @@
! { 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