https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95118
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 Keywords| |compile-time-hog Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Status|UNCONFIRMED |ASSIGNED Target Milestone|--- |10.2 Summary|gcc-10 and master -O3 |[10/11 Regression] gcc-10 |-fopt-info-vec causes gcc |and master -O3 |to hang |-fopt-info-vec causes gcc | |to hang Ever confirmed|0 |1 Last reconfirmed| |2020-05-14 Known to work| |9.3.0 --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- On the GCC 10 branch I see it not returning from (gdb) fin Run till exit from #0 0x000000000107148d in real_to_decimal_for_mode ( str=0x7fffffffcd60 "\200", r_orig=0x7fffffffcd40, buf_size=100, digits=57, crop_trailing_zeros=1, mode=E_VOIDmode) at /space/rguenther/src/gcc-10-branch/gcc/real.c:1718 we're in this loop: while (1) { /* Stop if we'd shift bits off the bottom. */ if (v.sig[0] & 7) break; do_multiply (&u, &v, ten); /* Stop if we're now >= 1. */ if (REAL_EXP (&u) > 0) break; v = u; dec_exp -= 1; } (gdb) p u $1 = {cl = 0, decimal = 0, sign = 0, signalling = 0, canonical = 0, uexp = 0, sig = {0, 0, 0}} and the original REAL_VALUE_TYPE is (gdb) p *r_orig $4 = {cl = 1, decimal = 0, sign = 0, signalling = 0, canonical = 0, uexp = 67092486, sig = {0, 0, 0}} so it's simply a weird not normalized constant zero ... I have a patch to paper over this in real_to_decimal_for_mode which then prints a (0.0e-8191); for the specific number.