https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126641
--- Comment #15 from H.J. Lu <hjl.tools at gmail dot com> ---
When real_nextafter is called from
#0 0x00000000022e1f60 in real_nextafter (r=r@entry=0x7fffffff8100, fmt=...,
x=0x7fffffff8180, x@entry=0x1, y=0x420fc80 <dconstinf>)
at /export/gnu/import/git/gitlab/x86-gcc/gcc/real.cc:5395
#1 0x00000000022c9ff8 in frange_nextafter (mode=<optimized out>,
mode@entry=E_DFmode, value=..., inf=...)
at /export/gnu/import/git/gitlab/x86-gcc/gcc/range-op-float.cc:314
#2 0x00000000027a5cde in frange_fusible_p (mode=E_DFmode, a_max=...,
b_min=...) at /export/gnu/import/git/gitlab/x86-gcc/gcc/value-range.cc:1041
#3 frange_fusible_p (mode=<optimized out>, a_max=..., b_min=...)
at /export/gnu/import/git/gitlab/x86-gcc/gcc/value-range.cc:1035
(gdb) f 0
#0 0x00000000022e1f60 in real_nextafter (r=r@entry=0x7fffffff8100, fmt=...,
x=0x7fffffff8180, x@entry=0x1, y=0x420fc80 <dconstinf>)
at /export/gnu/import/git/gitlab/x86-gcc/gcc/real.cc:5395
5395 SET_REAL_EXP (r, REAL_EXP (x));
(gdb)
overrides the stack:
#define SET_REAL_EXP(REAL, EXP) \
((REAL)->uexp = ((unsigned int)(EXP) & (unsigned int)((1 << EXP_BITS) - 1)))