The following reverts uhigh back to elt (1) which are not 100% semantically equivalent (and the change is not needed to avoid the warning-prone elt (0)).
Bootstrapped / tested on x86_64-unknown-linux-gnu, applied. Richard. 2017-03-03 Richard Biener <rguent...@suse.de> * fixed-value.c (fixed_from_string): Restore use of elt (1) in place of uhigh (). (fixed_convert_from_real): Likewise. Index: gcc/fixed-value.c =================================================================== --- gcc/fixed-value.c (revision 245865) +++ gcc/fixed-value.c (working copy) @@ -131,7 +131,7 @@ fixed_from_string (FIXED_VALUE_TYPE *f, wide_int w = real_to_integer (&fixed_value, &fail, GET_MODE_PRECISION (mode)); f->data.low = w.ulow (); - f->data.high = w.uhigh (); + f->data.high = w.elt (1); if (temp == FIXED_MAX_EPS && ALL_FRACT_MODE_P (f->mode)) { @@ -1050,7 +1050,7 @@ fixed_convert_from_real (FIXED_VALUE_TYP wide_int w = real_to_integer (&fixed_value, &fail, GET_MODE_PRECISION (mode)); f->data.low = w.ulow (); - f->data.high = w.uhigh (); + f->data.high = w.elt (1); temp = check_real_for_fixed_mode (&real_value, mode); if (temp == FIXED_UNDERFLOW) /* Minimum. */ {