Fix comparison of decimal float zeroes (PR80692)
authorSegher Boessenkool <segher@kernel.crashing.org>
Wed, 17 May 2017 21:57:23 +0000 (23:57 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Wed, 17 May 2017 21:57:23 +0000 (23:57 +0200)
commite98e63404c6b3057ac0f0ff4fe871cd19a1aacb4
tree60059a11d628cc19e51fd631d1d8f35c71eb2b26
parent78eca3093f7f60295aac46d559b5f21f3154e6dd
Fix comparison of decimal float zeroes (PR80692)

Decimal float negative zero should compare equal to positive zero.
Decimal float zeroes are encoded as value class "normal" (in real.c);
they need to be handled specially, but in this one case that does not
yet happen.  This fixes it.

PR middle-end/80692
* real.c (do_compare): Give decimal_do_compare preference over
comparing just the signs.

gcc/testsuite/
PR middle-end/80692
* gcc.c-torture/execute/pr80692.c: New testcase.

From-SVN: r248174
gcc/ChangeLog
gcc/real.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr80692.c [new file with mode: 0644]