middle-end/95118 - fix printing of denormal zero
authorRichard Biener <rguenther@suse.de>
Thu, 14 May 2020 06:53:03 +0000 (08:53 +0200)
committerRichard Biener <rguenther@suse.de>
Thu, 14 May 2020 08:50:05 +0000 (10:50 +0200)
commit568c985113b29574c4e25e1a016475668fc17c28
treeaa43af854ed86890cb52ccfd025a2e46621245d5
parent7a50e7087567cffb21e81fff566546b8a8dac270
middle-end/95118 - fix printing of denormal zero

This fixes printing a REAL_CST generated from value-numbering
punning some bits to a real which turns out as zero with big
negative exponent.  This causes the loop in real_to_decimal_for_mode to
never terminate.

2020-05-14  Richard Biener  <rguenther@suse.de>

PR middle-end/95118
* real.c (real_to_decimal_for_mode): Make sure we handle
a zero with nonzero exponent.

* gcc.dg/pr95118.c: New testcase.
gcc/ChangeLog
gcc/real.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr95118.c [new file with mode: 0644]