PR 49010,24518 MOD/MODULO fixes.
commitfa0323b8cddaae96ccf2e8acc414baa926d4fa1f
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 May 2012 07:59:22 +0000 (5 07:59 +0000)
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 May 2012 07:59:22 +0000 (5 07:59 +0000)
tree8d0572d604c2f2a46fc172d68dceeb1635b87c47
parenta291e3b6538a0697986d1a7d22aa220829998bab
PR 49010,24518 MOD/MODULO fixes.

gcc/fortran:

2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/49010
PR fortran/24518
* intrinsic.texi (MOD, MODULO): Mention sign and magnitude of result.
* simplify.c (gfc_simplify_mod): Use mpfr_fmod.
(gfc_simplify_modulo): Likewise, use copysign to fix the result if
zero.
* trans-intrinsic.c (gfc_conv_intrinsic_mod): Remove fallback as
builtin_fmod is always available. For modulo, call copysign to fix
the result when signed zeros are enabled.

testsuite:

2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/49010
PR fortran/24518
* gfortran.dg/mod_sign0_1.f90: New test.
* gfortran.dg/mod_large_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187191 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/fortran/ChangeLog
gcc/fortran/intrinsic.texi
gcc/fortran/simplify.c
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/mod_large_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/mod_sign0_1.f90 [new file with mode: 0644]