https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109865
--- Comment #3 from GARY.WHITE at ColoState dot edu <Gary.White at ColoState dot edu> --- (In reply to kargl from comment #2) > (In reply to gary.wh...@colostate.edu from comment #0) > > Created attachment 55087 [details] > > set of subroutines where moving mc11ad inside the contains statement > > produces incorrect results > > > > In the following code, when the subroutine mc11ad is moved inside the > > contains statement, incorrect results are produced. > > Produce wrong results is meaningless as you haven't told what the > correct results and wrong results are. A difference in the 7 > decimal place for REAL may be entirely possible due to floating > point round-off > > > Options being used to compile the code: > > COPTIONS = -cpp -std=f2018 -c -D ieee -D dbleprecision -m64 > > -fsignaling-nans -ffpe-summary='invalid','zero','overflow','underflow' -O3 > > -funroll-loops -ffast-math > > What happens if you remove -ffast-math and use -O0 or -O1? -O0 generates correct code with or without -ffastmath, -O1 does not generate correct code.