https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117805
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anlauf at gcc dot gnu.org --- Comment #12 from anlauf at gcc dot gnu.org --- (In reply to kargls from comment #11) > This is not processor-dependent behavior. gfortran implements > real*complex in accordance with the words of the Fortran standard. > > 10.1.5.2.1 Interpretation of numeric intrinsic operations > > The two operands of numeric intrinsic binary operations may > be of different numeric types or different kind type parameters. > Except for a value of type real or complex raised to an integer > power, if the operands have different types or kind type parameters, > the effect is as if each operand that differs in type or kind type > parameter from those of the result is converted to the type and > kind type parameter of the result before the operation is performed. > > If 'r' is of type REAL and 'z' is of type COMPLEX, the Fortran standard > is clear that the interpretation is > > <result is complex> = r * z > = (r, 0.) * z Is that really clear from the standard? In your quote I read "the effect is as if ... converted ...". With IEEE arithmetic available, it seems to be not clear to me if the imaginary part has to be +0.; couldn't its sign depend on the sign of the real part? Would that be a non-conforming implementation? Reading the quoted text, I feel that the committee intentionally ignored the the present issue.