https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96613
Bug ID: 96613 Summary: SIGFPE on min1() with -ffpe-trap=invalid switch Product: gcc Version: 10.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran Assignee: unassigned at gcc dot gnu.org Reporter: thomas.huxhorn at web dot de Target Milestone: --- The program fails if -ffpe-trap=invalid is present and no optimization flag is set. It print 5000 with any optimization level set. The expected behavior is that it print 5000 with no optimization. Perhaps it is possible to first calculate the minimum of both real values and then convert it to integer? Testet with gcc 10.1 and 4.9 Compile with gfortran -ffpe-trap=invalid -g -ggdb -fbacktrace test.f90 program test implicit none real :: X integer :: IX X = 7.7643945e+09 IX = MIN1(5000.0, X) write(*,*) IX end program gdb ./a.out (gdb) run Starting program: /home/thomas/a.out Program received signal SIGFPE, Arithmetic exception. 0x0000000000400794 in test () at test.f90:8 8 IX = MIN1(5000.0, X)