https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107294
bartoldeman at users dot sourceforge.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from bartoldeman at users dot sourceforge.net --- Thanks for the explanation, finding an example with NaNs you get 0.0 * (NaN + 0.0i) = NaN + 0.0i for C with annex G.5.1 but NaN + NaN i for Fortran, unless you specify -fno-signed-zeros. program main use, intrinsic :: ieee_arithmetic, only: IEEE_Value, IEEE_QUIET_NAN use, intrinsic :: iso_fortran_env, only: real32 real(real32) :: a, nan complex(real32) :: cnan nan = IEEE_VALUE(nan, IEEE_QUIET_NAN) cnan = cmplx(nan, 0.0) zero = 0.0 print *, zero, cnan, zero * cnan end illustrates this 0.00000000 ( NaN, 0.00000000 ) ( NaN, NaN) vs 0.00000000 ( NaN, 0.00000000 ) ( NaN, 0.00000000 )