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

--- Comment #2 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot 
Uni-Bielefeld.DE> 2011-04-26 17:36:51 UTC ---
> - large_real_kind_2.F90
>   Fails for CTEST_POWER(0.0, 5.4), which is:
>     abs(0.0**5.4 - 0.0**5.4)/(0.0**5.4) > eps
>         xxxxxxxx   88888888   88888888
>   where "x" is complex(kind=16) ("selected_real_kind (precision (0.0_8) + 1)")
>   and "8" is complex(8).
>   The numeric expression gives 0.0/0.0 = NaN - and "NaN > eps" gives
>   here FALSE - but on Tru64 seemingly SIGABRT? 

No, the SIGFPE already happens in the cpow (0.0, 0.0, 5.4, 0.0) call.
If I compile with -mieee instead, I get SIGFPE for

75       CTEST_POWER (0.0,1.0)

complex(3) states:

  cpow(), cpowf()           sqrt(a**2 + b**2) >       overflow
                            max_float
  cpow(), cpowf()           c/2 * ln(a**2 + b**2) >   overflow
                            max_float
  cpow(), cpowf()           c/2 * ln(a**2 + b**2) -   overflow
                            (d * atan2(b,c)) >
                            max_float
  ____________________________________________________________________

  __________________________________________________________________
  Value Name   Data Type   Hexadecimal Value   Decimal Value
  __________________________________________________________________
  max_float    F_FLOAT     FFFF7FFF            1.701411e38
               G_FLOAT     FFFFFFFFFFFF7       8.988465674311579e307
               S_FLOAT     7F7FFFFF            3.402823e38
               T_FLOAT     7FEFFFFFFFFFFFFF

F_FLOAT and G_FLOAT is the VAX single resp. double format, while S_FLOAT
and T_FLOAT are IEEE single and double.

    Rainer

Reply via email to