https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64503
--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- The values at sreal::to_double are highly suspicious (these values are the same on x86_64 and alpha), following is on x86_64: 125 val *= exp2 (m_exp); (gdb) p val $5 = -1073741826 (gdb) p m_exp $6 = 2097153 (gdb) p/x m_exp $7 = 0x200001 (gdb) list 120 double 121 sreal::to_double () const 122 { 123 double val = m_sig; 124 if (m_exp) 125 val *= exp2 (m_exp); 126 return val; 127 } This can be reproduced by simply setting breakpoint on sreal::to_double, the problem will be exposed the first time this function is called.