------- Comment #3 from kargl at gcc dot gnu dot org  2008-12-12 15:15 -------
(In reply to comment #1)
> Sort of confirmed. You are aware that 'value-1' corresponds to
> '-HUGE(value)-1', which is out of range for integer numbers of that kind?
> 

( Ihaven't had my morning coffe, but ...)

No. It is in range.  It is the only way (other than TRANSFER) to 
get the most negative integer value in a simple assignment.  Now, 
if you write

  value =  9223372036854775807_i8_ + 1
  write(*, FMT="(i22)") value, HUGE(value)+1

This results in out of range values, and wrap around semantics 
still gives

 --9223372036854775808
 --9223372036854775808

Also, note that if one uses integer(4), you get the right output.

           -2147483647
           -2147483647
           -2147483648
           -2147483648


-- 


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

Reply via email to