This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/21797] complex(4) sqrt failures on alpha-linux


------- Additional Comments From kargl at gcc dot gnu dot org  2005-05-28 14:39 -------
FX, 

On i386-*-freebsd, -fdump-tree-original shows

  MAIN__ ()
  {
    complex4 z;
    complex4 c;
    z = __complex__ (4.0e+0, 0.0);
    c = csqrtf (z);

kargl[214] find . -type f | xargs grep csqrtf
./gcc/builtins.def:DEF_C99_BUILTIN        (BUILT_IN_CSQRTF, "csqrtf",
BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING)
./gcc/doc/extend.texi:@findex csqrtf
./gcc/doc/extend.texi:@code{csinhl}, @code{csinh}, @code{csinl}, @code{csin},
@code{csqrtf},
./libstdc++-v3/ChangeLog-2000:  (EXTRA_DIST): Remove csqrt.c and csqrtf.c.
./libstdc++-v3/acinclude.m4:                csqrtf(tmpf);
./libstdc++-v3/configure:                   csqrtf(tmpf);
./libstdc++-v3/include/std/std_complex.h:  __complex_sqrt(__complex__ float __z)
{ return __builtin_csqrtf(__z); }
./libstdc++-v3/ChangeLog-1998:  * math/csqrtf.c: Likewise.
./libstdc++-v3/ChangeLog-1998:  * math/csqrtf.c: Likewise.
./libstdc++-v3/ChangeLog-1999:  * math/csqrtf.c: Likewise.
./libgfortran/generated/exp_c4.c:csqrtf (GFC_COMPLEX_4 z)

If we look through libgfortran/generated/exp_c4.c, we see that csqrtf
mixes float and double C math functions

  if (im == 0.0)
    {
      if (re < 0.0)
        {
          COMPLEX_ASSIGN (v, 0.0, copysignf (sqrtf (-re), im));
        }
      else
        {
          COMPLEX_ASSIGN (v, fabsf (sqrt (re)),
                          copysignf (0.0, im));
        }
    }

Note the sqrt (re) instead of sqrtf (re).


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu dot org


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]