------- Comment #5 from tkoenig at gcc dot gnu dot org  2007-02-17 21:27 -------

> After looking at this a little bit, I think we may want to
> change the error message to report the invalid integer exponent 
> value and document that INT_MIN <= e <= INT_MAX.  Why?  Well, 
> other than the special values of 1 and 0, the evaluation of
> x**e will exceed the range of x.

I don't think this is the case:

$ cat foo.f90
program main
  real(kind=8) :: a
  integer(kind=8) :: n
  n = 2_8**32
  a = 1_8 + epsilon(a)
  print *,a**n
end program main
$ gfortran foo.f90
$ ./a.out
   1.00000095367477

I do admit this is a corner case, though :-)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30834

Reply via email to