------- Comment #6 from eres at il dot ibm dot com 2007-02-26 15:01 ------- It seems that initializing the expansion with -zero (instead of +zero) will solve this problem.
According IEEE standard if we have - x += something; initializing x with -0 will cause x to get the sign of something. -0 + (-0) = -0 -0 + (+0) = +0 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30957