OSDN Git Service

2009-11-30 Robert Dewar <dewar@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Nov 2009 09:48:04 +0000 (09:48 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Nov 2009 09:48:04 +0000 (09:48 +0000)
* g-alleve.adb: Minor code reorganization (use conditional expressions)

2009-11-30  Thomas Quinot  <quinot@adacore.com>

* a-tasatt.adb, s-taprop-dummy.adb (Ada.Task_Attributes.Reference):
Remove unreachable code.
(System.Task_Primitives.Operations.Initialize, dummy version):
Use plain Program_Error rather than call to
System.Error_Reporting.Shutdown.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154766 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/a-tasatt.adb
gcc/ada/g-alleve.adb
gcc/ada/s-taprop-dummy.adb

index 11db89e..cb9fbab 100644 (file)
 --  general use 'Unchecked_Access instead of 'Access as the package can be
 --  instantiated from within a local context.
 
-with System.Error_Reporting;
 with System.Storage_Elements;
 with System.Task_Primitives.Operations;
 with System.Tasking;
@@ -237,8 +236,7 @@ pragma Elaborate_All (System.Tasking.Task_Attributes);
 
 package body Ada.Task_Attributes is
 
-   use System.Error_Reporting,
-       System.Tasking.Initialization,
+   use System.Tasking.Initialization,
        System.Tasking,
        System.Tasking.Task_Attributes,
        Ada.Exceptions;
@@ -424,9 +422,6 @@ package body Ada.Task_Attributes is
          end;
       end if;
 
-      pragma Assert (Shutdown ("Should never get here in Reference"));
-      return null;
-
    exception
       when Tasking_Error | Program_Error =>
          raise;
index 3443344..39d0b72 100644 (file)
@@ -376,11 +376,8 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
       begin
          for K in Varray_Type'Range loop
-            if A (K) /= Component_Type'First then
-               D (K) := abs (A (K));
-            else
-               D (K) := Component_Type'First;
-            end if;
+            D (K) := (if A (K) /= Component_Type'First
+                      then abs (A (K)) else Component_Type'First);
          end loop;
 
          return D;
@@ -443,11 +440,7 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
       begin
          for J in Varray_Type'Range loop
-            if A (J) > B (J) then
-               D (J) := Bool_True;
-            else
-               D (J) := Bool_False;
-            end if;
+            D (J) := (if A (J) > B (J) then Bool_True else Bool_False);
          end loop;
 
          return D;
@@ -489,11 +482,7 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
       begin
          for J in Varray_Type'Range loop
-            if A (J) > B (J) then
-               D (J) := A (J);
-            else
-               D (J) := B (J);
-            end if;
+            D (J) := (if A (J) > B (J) then A (J) else B (J));
          end loop;
 
          return D;
@@ -545,11 +534,7 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
       begin
          for J in Varray_Type'Range loop
-            if A (J) < B (J) then
-               D (J) := A (J);
-            else
-               D (J) := B (J);
-            end if;
+            D (J) := (if A (J) < B (J) then A (J) else B (J));
          end loop;
 
          return D;
@@ -971,11 +956,7 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
       begin
          for J in Varray_Type'Range loop
-            if A (J) = B (J) then
-               D (J) := Bool_True;
-            else
-               D (J) := Bool_False;
-            end if;
+            D (J) := (if A (J) = B (J) then Bool_True else Bool_False);
          end loop;
 
          return D;
@@ -992,11 +973,7 @@ package body GNAT.Altivec.Low_Level_Vectors is
          D : Varray_Type;
       begin
          for J in Varray_Type'Range loop
-            if A (J) > B (J) then
-               D (J) := Bool_True;
-            else
-               D (J) := Bool_False;
-            end if;
+            D (J) := (if A (J) > B (J) then Bool_True else Bool_False);
          end loop;
 
          return D;
@@ -1011,11 +988,7 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
       begin
          for J in Varray_Type'Range loop
-            if A (J) > B (J) then
-               D (J) := A (J);
-            else
-               D (J) := B (J);
-            end if;
+            D (J) := (if A (J) > B (J) then A (J) else B (J));
          end loop;
 
          return D;
@@ -1030,11 +1003,7 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
       begin
          for J in Varray_Type'Range loop
-            if A (J) < B (J) then
-               D (J) := A (J);
-            else
-               D (J) := B (J);
-            end if;
+            D (J) := (if A (J) < B (J) then A (J) else B (J));
          end loop;
 
          return D;
@@ -1248,17 +1217,15 @@ package body GNAT.Altivec.Low_Level_Vectors is
       begin
 
          for J in 0 .. N - 1 loop
-            if Use_Even_Components then
-               Offset := Index_Type (2 * J + Integer (Index_Type'First));
-            else
-               Offset := Index_Type (2 * J + 1 + Integer (Index_Type'First));
-            end if;
+            Offset :=
+              Index_Type ((if Use_Even_Components then 2 * J else 2 * J + 1) +
+                          Integer (Index_Type'First));
 
             Double_Offset :=
               Double_Index_Type (J + Integer (Double_Index_Type'First));
             D (Double_Offset) :=
-              Double_Component_Type (A (Offset))
-              Double_Component_Type (B (Offset));
+              Double_Component_Type (A (Offset)) *
+              Double_Component_Type (B (Offset));
          end loop;
 
          return D;
@@ -1418,17 +1385,15 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
       begin
          for J in 0 .. N - 1 loop
-            if Use_Even_Components then
-               Offset := Index_Type (2 * J + Integer (Index_Type'First));
-            else
-               Offset := Index_Type (2 * J + 1 + Integer (Index_Type'First));
-            end if;
+            Offset :=
+              Index_Type ((if Use_Even_Components then 2 * J else 2 * J + 1) +
+                          Integer (Index_Type'First));
 
             Double_Offset :=
               Double_Index_Type (J + Integer (Double_Index_Type'First));
             D (Double_Offset) :=
-              Double_Component_Type (A (Offset))
-              Double_Component_Type (B (Offset));
+              Double_Component_Type (A (Offset)) *
+              Double_Component_Type (B (Offset));
          end loop;
 
          return D;
@@ -1620,11 +1585,7 @@ package body GNAT.Altivec.Low_Level_Vectors is
       if (Bits (VSCR, NJ_POS, NJ_POS) = 1)
         and then abs (X) < 2.0 ** (-126)
       then
-         if X < 0.0 then
-            D := -0.0;
-         else
-            D := 0.0;
-         end if;
+         D := (if X < 0.0 then -0.0 else +0.0);
       else
          D := X;
       end if;
@@ -1648,17 +1609,18 @@ package body GNAT.Altivec.Low_Level_Vectors is
    function Rnd_To_FPI_Near (X : F64) return F64 is
       Result  : F64;
       Ceiling : F64;
+
    begin
       Result := F64 (SI64 (X));
 
       if (F64'Ceiling (X) - X) = (X + 1.0 - F64'Ceiling (X)) then
+
          --  Round to even
+
          Ceiling := F64'Ceiling (X);
-         if Rnd_To_FPI_Trunc (Ceiling / 2.0) * 2.0 = Ceiling then
-            Result := Ceiling;
-         else
-            Result := Ceiling - 1.0;
-         end if;
+         Result :=
+           (if Rnd_To_FPI_Trunc (Ceiling / 2.0) * 2.0 = Ceiling
+            then Ceiling else Ceiling - 1.0);
       end if;
 
       return Result;
@@ -2111,14 +2073,9 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
    begin
       for J in Varray_unsigned_int'Range loop
-         Addition_Result :=
-           UI64 (VA.Values (J)) + UI64 (VB.Values (J));
-
-         if Addition_Result > UI64 (unsigned_int'Last) then
-            D.Values (J) := 1;
-         else
-            D.Values (J) := 0;
-         end if;
+         Addition_Result := UI64 (VA.Values (J)) + UI64 (VB.Values (J));
+         D.Values (J) :=
+           (if Addition_Result > UI64 (unsigned_int'Last) then 1 else 0);
       end loop;
 
       return To_LL_VSI (To_Vector (D));
@@ -2374,19 +2331,15 @@ package body GNAT.Altivec.Low_Level_Vectors is
             D.Values (K) := Write_Bit (D.Values (K), 1, 1);
 
          else
-            if NJ_Truncate (VA.Values (J))
-              <= NJ_Truncate (VB.Values (J)) then
-               D.Values (K) := Write_Bit (D.Values (K), 0, 0);
-            else
-               D.Values (K) := Write_Bit (D.Values (K), 0, 1);
-            end if;
-
-            if NJ_Truncate (VA.Values (J))
-              >= -NJ_Truncate (VB.Values (J)) then
-               D.Values (K) := Write_Bit (D.Values (K), 1, 0);
-            else
-               D.Values (K) := Write_Bit (D.Values (K), 1, 1);
-            end if;
+            D.Values (K) :=
+              (if NJ_Truncate (VA.Values (J)) <= NJ_Truncate (VB.Values (J))
+               then Write_Bit (D.Values (K), 0, 0)
+               else Write_Bit (D.Values (K), 0, 1));
+
+            D.Values (K) :=
+              (if NJ_Truncate (VA.Values (J)) >= -NJ_Truncate (VB.Values (J))
+               then Write_Bit (D.Values (K), 1, 0)
+               else Write_Bit (D.Values (K), 1, 1));
          end if;
       end loop;
 
@@ -2441,17 +2394,11 @@ package body GNAT.Altivec.Low_Level_Vectors is
       VA : constant VF_View := To_View (A);
       VB : constant VF_View := To_View (B);
       D  : VUI_View;
-      K  : Vint_Range;
 
    begin
       for J in Varray_float'Range loop
-         K := Vint_Range (J);
-
-         if VA.Values (J) = VB.Values (J) then
-            D.Values (K) := unsigned_int'Last;
-         else
-            D.Values (K) := 0;
-         end if;
+         D.Values (Vint_Range (J)) :=
+            (if VA.Values (J) = VB.Values (J) then unsigned_int'Last else 0);
       end loop;
 
       return To_LL_VSI (To_Vector (D));
@@ -2465,17 +2412,12 @@ package body GNAT.Altivec.Low_Level_Vectors is
       VA : constant VF_View := To_View (A);
       VB : constant VF_View := To_View (B);
       D : VSI_View;
-      K : Vint_Range;
 
    begin
       for J in Varray_float'Range loop
-         K := Vint_Range (J);
-
-         if VA.Values (J) >= VB.Values (J) then
-            D.Values (K) := Signed_Bool_True;
-         else
-            D.Values (K) := Signed_Bool_False;
-         end if;
+         D.Values (Vint_Range (J)) :=
+           (if VA.Values (J) >= VB.Values (J) then Signed_Bool_True
+                                              else Signed_Bool_False);
       end loop;
 
       return To_Vector (D);
@@ -2567,18 +2509,12 @@ package body GNAT.Altivec.Low_Level_Vectors is
       VA : constant VF_View := To_View (A);
       VB : constant VF_View := To_View (B);
       D  : VSI_View;
-      K  : Vint_Range;
 
    begin
       for J in Varray_float'Range loop
-         K := Vint_Range (J);
-
-         if NJ_Truncate (VA.Values (J))
-           > NJ_Truncate (VB.Values (J)) then
-            D.Values (K) := Signed_Bool_True;
-         else
-            D.Values (K) := Signed_Bool_False;
-         end if;
+         D.Values (Vint_Range (J)) :=
+           (if NJ_Truncate (VA.Values (J)) > NJ_Truncate (VB.Values (J))
+            then Signed_Bool_True else Signed_Bool_False);
       end loop;
 
       return To_Vector (D);
@@ -3069,11 +3005,8 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
    begin
       for J in Varray_float'Range loop
-         if VA.Values (J) > VB.Values (J) then
-            D.Values (J) := VA.Values (J);
-         else
-            D.Values (J) := VB.Values (J);
-         end if;
+         D.Values (J) := (if VA.Values (J) > VB.Values (J) then VA.Values (J)
+                                                           else VB.Values (J));
       end loop;
 
       return To_Vector (D);
@@ -3186,11 +3119,8 @@ package body GNAT.Altivec.Low_Level_Vectors is
 
    begin
       for J in Varray_float'Range loop
-         if VA.Values (J) < VB.Values (J) then
-            D.Values (J) := VA.Values (J);
-         else
-            D.Values (J) := VB.Values (J);
-         end if;
+         D.Values (J) := (if VA.Values (J) < VB.Values (J) then VA.Values (J)
+                                                           else VB.Values (J));
       end loop;
 
       return To_Vector (D);
@@ -3924,12 +3854,9 @@ package body GNAT.Altivec.Low_Level_Vectors is
       for N in Vchar_Range'Range loop
          J := Vchar_Range (Integer (Bits (VC.Values (N), 4, 7))
                            + Integer (Vchar_Range'First));
-
-         if Bits (VC.Values (N), 3, 3) = 0 then
-            D.Values (N) := VA.Values (J);
-         else
-            D.Values (N) := VB.Values (J);
-         end if;
+         D.Values (N) :=
+           (if Bits (VC.Values (N), 3, 3) = 0 then VA.Values (J)
+                                              else VB.Values (J));
       end loop;
 
       return To_LL_VSI (To_Vector (D));
@@ -4184,12 +4111,9 @@ package body GNAT.Altivec.Low_Level_Vectors is
    begin
       for N in Vchar_Range'Range loop
          J := Natural (N) + M;
-
-         if J <= Natural (Vchar_Range'Last) then
-            D.Values (N) := VA.Values (Vchar_Range (J));
-         else
-            D.Values (N) := 0;
-         end if;
+         D.Values (N) :=
+           (if J <= Natural (Vchar_Range'Last) then VA.Values (Vchar_Range (J))
+                                               else 0);
       end loop;
 
       return To_LL_VSI (To_Vector (D));
@@ -4530,12 +4454,8 @@ package body GNAT.Altivec.Low_Level_Vectors is
    begin
       for J in Vint_Range'Range loop
          Subst_Result := SI64 (VA.Values (J)) - SI64 (VB.Values (J));
-
-         if Subst_Result < SI64 (unsigned_int'First) then
-            D.Values (J) := 0;
-         else
-            D.Values (J) := 1;
-         end if;
+         D.Values (J) :=
+           (if Subst_Result < SI64 (unsigned_int'First) then 0 else 1);
       end loop;
 
       return To_LL_VSI (To_Vector (D));
@@ -5023,12 +4943,11 @@ package body GNAT.Altivec.Low_Level_Vectors is
       D := To_View (vcmpbfp (B, C));
 
       for J in Vint_Range'Range loop
+
          --  vcmpbfp is not returning the usual bool vector; do the conversion
-         if D.Values (J) = 0 then
-            D.Values (J) := Signed_Bool_False;
-         else
-            D.Values (J) := Signed_Bool_True;
-         end if;
+
+         D.Values (J) :=
+           (if D.Values (J) = 0 then Signed_Bool_False else Signed_Bool_True);
       end loop;
 
       return LL_VSI_Operations.Check_CR6 (A, D.Values);
index 38264ba..894500b 100644 (file)
@@ -38,8 +38,6 @@ pragma Polling (Off);
 --  Turn off polling, we do not want ATC polling to take place during tasking
 --  operations. It causes infinite loops and other problems.
 
-with System.Error_Reporting;
-
 package body System.Task_Primitives.Operations is
 
    use System.Tasking;
@@ -192,9 +190,7 @@ package body System.Task_Primitives.Operations is
    procedure Initialize (Environment_Task : Task_Id) is
       No_Tasking : Boolean;
    begin
-      No_Tasking :=
-        System.Error_Reporting.Shutdown
-          ("Tasking not implemented on this configuration");
+      raise Program_Error with "Tasking not implemented on this configuration";
    end Initialize;
 
    procedure Initialize (S : in out Suspension_Object) is