$ cat mod-neg.f90 integer :: a,b a = 2 b = -1 print *,modulo(2,-1) print *,modulo(a,b) end $ gfortran mod-neg.f90 && ./a.out 0 -1 $ gfortran -v Reading specs from /home/zfkts/lib/gcc/ia64-unknown-linux-gnu/4.0.0/specs Configured with: ../gcc-4.0-20041212/configure --prefix=/home/zfkts --enable-languages=c,c++,f95 : (reconfigured) ../gcc-4.0-20041212/configure --prefix=/home/zfkts --enable-languages=c,c++,f95 --disable-shared Thread model: posix gcc version 4.0.0 20041212 (experimental)
It's a bit strange that the first result is correct, and the second one isn't. -- Summary: modulo generates wrong result Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P2 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: Thomas dot Koenig at online dot de CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19032