------- Comment #2 from svfuerst at gmail dot com  2010-04-04 16:51 -------
Paragraph 2 in G.5.1 defines multiplication of a real floating point type by an
imaginary floating point type to be an imaginary type, not a complex type.

In addition, the Rationale for Annex G states that

"It allow writing imaginary and complex expressions in common mathematical
style, for example x + I*y.  Note that the multiplication here affects
translated code, but does not necessitate an actual floating-point multiply,
nor does the addition necessitate a floating point add."

Which strongly suggests that the naive code generation which ignores the signed
zero issue is the correct one. (Note that the rationale also lists the case
where y=INFINITY as causing problems with signaling NaNs if I is _Complex_I.)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43639

Reply via email to