fixed-bit.c (SATFRACT): Only declare / set min_low, min_high if TO_MODE_UNSIGNED...
authorGeorg-Johann Lay <avr@gjlay.de>
Mon, 14 Jan 2013 10:19:00 +0000 (10:19 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Mon, 14 Jan 2013 10:19:00 +0000 (10:19 +0000)
* fixed-bit.c (SATFRACT) <FROM_TYPE=1, TO_TYPE=4>: Only
declare / set min_low, min_high if TO_MODE_UNSIGNED == 0.
(SATFRACT) <FROM_TYPE=TO_TYPE=4>: Only declare / set min_low,
min_high if FROM_MODE_UNSIGNED == 0 and TO_MODE_UNSIGNED == 0.

From-SVN: r195141

libgcc/ChangeLog
libgcc/fixed-bit.c

index d0d82fedcb0b2717554dd938c159683cfc1bb244..160fe77fb0b6979c11cb762ec9bf65aed7ba847a 100644 (file)
@@ -1,3 +1,10 @@
+2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
+
+       * fixed-bit.c (SATFRACT) <FROM_TYPE=1, TO_TYPE=4>: Only
+       declare / set min_low, min_high if TO_MODE_UNSIGNED == 0.
+       (SATFRACT) <FROM_TYPE=TO_TYPE=4>: Only declare / set min_low,
+       min_high if FROM_MODE_UNSIGNED == 0 and TO_MODE_UNSIGNED == 0.
+
 2013-01-07  Mark Kettenis  <kettenis@openbsd.org>
 
        * config.host (i[34567]86-*-openbsd* and x86_64-*-openbsd*):
index 71243c1295a6da2cdbbeb9fbaea88321e70d65db..7af71b7b0516a56681142c332762906872b795c1 100644 (file)
@@ -761,11 +761,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;
@@ -812,13 +813,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
@@ -957,7 +957,7 @@ FRACT (FROM_INT_C_TYPE a)
 #endif /* defined(FRACT) && FROM_TYPE == 1 && TO_TYPE == 4  */
 
 /* Signed int -> Fixed with saturation.  */
-#if defined(SATFRACT) && defined(L_satfract) &&FROM_TYPE == 1 && TO_TYPE == 4
+#if defined(SATFRACT) && defined(L_satfract) && FROM_TYPE == 1 && TO_TYPE == 4
 TO_FIXED_C_TYPE
 SATFRACT (FROM_INT_C_TYPE a)
 {
@@ -966,8 +966,8 @@ 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 min_high, min_low;
   BIG_SINT_C_TYPE stemp;
 #endif
 #if BIG_WIDTH != TO_FBITS
@@ -1008,12 +1008,7 @@ SATFRACT (FROM_INT_C_TYPE a)
   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;
-#endif
 
-#if TO_MODE_UNSIGNED == 0
   /* Signed -> Signed.  */
   if ((BIG_SINT_C_TYPE) high > (BIG_SINT_C_TYPE) max_high
       || ((BIG_SINT_C_TYPE) high == (BIG_SINT_C_TYPE) max_high