gnu / gcc / 93ac832f1846e4867aa6537f76f510fab8e3e87d / . / gcc / testsuite / gfortran.dg / nosigned_zero_1.f90

! { dg-do run } | |

! | |

! PR fortran/40675 | |

! | |

! Fortran 77 just had: "The value of a signed zero is the same as | |

! the value of an unsigned zero." and g77 returned for SIGN(1.0, -0.0) = 1.0 | |

! | |

! Fortran 95+ has for SIGN: "Case (iv): If B is of type real and is zero, | |

! then ... (c) If B is negative real zero, the value of the result is -|A|". | |

! On architectures, where signed zeros are supported, gfortran's SIGN thus | |

! returns for B=-0.0 the -|A|. | |

! | |

program s | |

x = sign(1.,0.) | |

y = sign(1.,-0.) | |

if (x /= 1.) STOP 1 | |

if (y /= -1.) STOP 2 | |

x = 1. | |

y = 0. | |

x = sign(x, y) | |

y = sign(x, -y) | |

if (x /= 1.) STOP 3 | |

if (y /= -1.) STOP 4 | |

end program s |