severe deficiencies with integer(16), real(10), and real(16)
Steve Kargl
sgk@troutmask.apl.washington.edu
Sat Aug 20 14:34:00 GMT 2005
Tried to compile
program a
integer i
real(10) x
x = 1._10
do i = 1, 10
x = x**i
print *, x
end do
end program
and got
kargl[204] gfc41 -static -o z b.f90
b.f90: In function 'MAIN__':
b.f90:4: internal compiler error: in gfc_conv_power_op, at fortran/trans-expr.c:713
Please submit a full bug report,
So, I looked at gfc_conv_power_op and noticed that it has switch
statements that only recognize kind=1,2,4,8 for both integer and
real.
So, I did
kargl[209] cd gcc/gcc41/gcc/fortran
kargl[210] grep "case 8" *
iresolve.c: case 8:
iresolve.c: case 8:
primary.c: case 8:
trans-expr.c: case 8:
trans-expr.c: case 8:
trans-expr.c: case 8:
trans-expr.c: case 8:
trans-intrinsic.c: case 8:
trans-intrinsic.c: case 8:
trans-intrinsic.c: case 8:
trans-intrinsic.c: case 8:
trans-intrinsic.c: case 8:
trans-intrinsic.c: case 8:
trans-intrinsic.c: case 8:
trans-intrinsic.c: case 8:
In every one of the switch statements that I've examined, I
find that we incorrectly handle integer(16) and/or real(10)
and/or real(16). Some of these I think I can fix, but others
I'll need some input. For example, do we have a BUILT_IN_TRUNCL.
--
Steve
More information about the Fortran
mailing list