(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr70278.c
       1  /* { dg-do compile } */
       2  /*
       3   * ====================================================
       4   * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
       5   *
       6   * Developed at SunPro, a Sun Microsystems, Inc. business.
       7   * Permission to use, copy, modify, and distribute this
       8   * software is freely granted, provided that this notice 
       9   * is preserved.
      10   * ====================================================
      11   */
      12  typedef union
      13  {
      14    double value;
      15    struct
      16    {
      17      unsigned int msw;
      18    } parts;
      19  } ieee_double_shape_type;
      20  double __ieee754_hypot(double x, double y)
      21  {
      22   double a=x,b=y,t1,t2,y1,y2,w;
      23   int j,k,ha,hb;
      24   do { ieee_double_shape_type gh_u; gh_u.value = (x); (ha) = gh_u.parts.msw; } while (0);;
      25   if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;}
      26   if(ha > 0x5f300000) {
      27      do { ieee_double_shape_type sh_u; sh_u.value = (a); sh_u.parts.msw = (ha); (a) = sh_u.value; } while (0);;
      28   }
      29   w = a-b;
      30   if (w <= b)
      31   {
      32       t2 = a - t1;
      33       w = t1*y1-(w*(-w)-(t1*y2+t2*b));
      34   }
      35   if(k!=0) {
      36   } else return w;
      37  }