Hi! Doing low = -low; on signed HOST_WIDE_INT results in undefined behavior if the low HWI is LONG_LONG_MIN. Fixed thusly, ok for trunk?
2014-03-26 Jakub Jelinek <ja...@redhat.com> PR other/59545 * real.c (real_to_integer2): Change type of low to UHWI. --- gcc/real.c.jj 2014-01-03 11:40:37.000000000 +0100 +++ gcc/real.c 2014-03-26 10:11:39.670655366 +0100 @@ -1377,7 +1377,8 @@ real_to_integer2 (HOST_WIDE_INT *plow, H const REAL_VALUE_TYPE *r) { REAL_VALUE_TYPE t; - HOST_WIDE_INT low, high; + unsigned HOST_WIDE_INT low; + HOST_WIDE_INT high; int exp; switch (r->cl) Jakub