Hi, When building for, say, mips-linux-gnu, the build of objects from fixed-bit.c produces a lot of "set but not used" warnings for min_high & min_low.
looking at the code, these appear to be genuine. Fixed as below. OK for trunk? Iain libgcc: * fixed-bit.c (SATFRACT): Adjust declarations and init for min_high, min_low. Index: libgcc/fixed-bit.c =================================================================== --- libgcc/fixed-bit.c (revision 188657) +++ libgcc/fixed-bit.c (working copy) @@ -768,11 +768,12 @@ SATFRACT (FROM_FIXED_C_TYPE a) #if FROM_MODE_UNSIGNED == 0 BIG_SINT_C_TYPE high, low; BIG_SINT_C_TYPE max_high, max_low; +# if TO_MODE_UNSIGNED == 0 BIG_SINT_C_TYPE min_high, min_low; +# endif #else BIG_UINT_C_TYPE high, low; BIG_UINT_C_TYPE max_high, max_low; - BIG_UINT_C_TYPE min_high, min_low; #endif #if TO_FBITS > FROM_FBITS BIG_UINT_C_TYPE utemp; @@ -819,13 +820,12 @@ SATFRACT (FROM_FIXED_C_TYPE a) #endif #if TO_MODE_UNSIGNED == 0 - min_high = -1; stemp = (BIG_SINT_C_TYPE)1 << (BIG_WIDTH - 1); stemp = stemp >> (BIG_WIDTH - 1 - TO_I_F_BITS); +# if FROM_MODE_UNSIGNED == 0 + min_high = -1; min_low = stemp; -#else - min_high = 0; - min_low = 0; +# endif #endif #if FROM_MODE_UNSIGNED == 0 && TO_MODE_UNSIGNED == 0 @@ -973,9 +973,9 @@ SATFRACT (FROM_INT_C_TYPE a) FROM_INT_C_TYPE x = a; BIG_SINT_C_TYPE high, low; BIG_SINT_C_TYPE max_high, max_low; - BIG_SINT_C_TYPE min_high, min_low; #if TO_MODE_UNSIGNED == 0 BIG_SINT_C_TYPE stemp; + BIG_SINT_C_TYPE min_low, min_high; #endif #if BIG_WIDTH != TO_FBITS BIG_UINT_C_TYPE utemp; @@ -1011,13 +1011,10 @@ SATFRACT (FROM_INT_C_TYPE a) #endif #if TO_MODE_UNSIGNED == 0 - min_high = -1; stemp = (BIG_SINT_C_TYPE)1 << (BIG_WIDTH - 1); stemp = stemp >> (BIG_WIDTH - 1 - TO_I_F_BITS); min_low = stemp; -#else - min_high = 0; - min_low = 0; + min_high = -1; #endif #if TO_MODE_UNSIGNED == 0