1! { dg-do run } 2! { dg-options "-fno-sign-zero" } 3! 4! PR fortran/40675 5! 6! Fortran 77 just had: "The value of a signed zero is the same as 7! the value of an unsigned zero." and g77 returned for SIGN(1.0, -0.0) = 1.0 8! 9! Fortran 95+ has for SIGN: "Case (iv): If B is of type real and is zero, 10! then ... (c) If B is negative real zero, the value of the result is -|A|". 11! On architectures, where signed zeros are supported, gfortran's SIGN thus 12! returns for B=-0.0 the -|A|. 13! 14program s 15 x = sign(1.,0.) 16 y = sign(1.,-0.) 17 if (x /= 1.) STOP 1 18 if (y /= 1.) STOP 2 19 x = 1. 20 y = 0. 21 x = sign(x, y) 22 y = sign(x, -y) 23 if (x /= 1.) STOP 3 24 if (y /= 1.) STOP 4 25end program s 26