* exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 3 Jan 2005 15:36:25 +0000 (15:36 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 3 Jan 2005 15:36:25 +0000 (15:36 +0000)
bounds can be negative, and must be declared Int, not Nat.

* sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
array is checked after using the index in the array.

* makegpr.adb (Add_Switches): Check if there is a package for the
processor. If there is no package, do not look for switches.

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

gcc/ada/exp_aggr.adb
gcc/ada/makegpr.adb
gcc/ada/sem_elim.adb

index d18a02e..5337391 100644 (file)
@@ -5019,8 +5019,8 @@ package body Exp_Aggr is
          --  Otherwise we are all positional, so convert to proper value
 
          declare
-            Lov : constant Nat := UI_To_Int (Lob);
-            Hiv : constant Nat := UI_To_Int (Hib);
+            Lov : constant Int := UI_To_Int (Lob);
+            Hiv : constant Int := UI_To_Int (Hib);
 
             Len : constant Nat := Int'Max (0, Hiv - Lov + 1);
             --  The length of the array (number of elements)
index 4806a9a..28b4670 100644 (file)
@@ -945,55 +945,56 @@ package body Makegpr is
             Pkg := Value_Of (Name_Compiler, Data.Decl.Packages);
       end case;
 
-      --  Get the Switches ("file name"), if they exist
+      if Pkg /= No_Package then
+         --  Get the Switches ("file name"), if they exist
 
-      Switches_Array := Prj.Util.Value_Of
-        (Name      => Name_Switches,
-         In_Arrays =>
-           Packages.Table (Pkg).Decl.Arrays);
-
-      Switches :=
-        Prj.Util.Value_Of
-          (Index     => File_Name,
-           Src_Index => 0,
-           In_Array  => Switches_Array);
+         Switches_Array := Prj.Util.Value_Of
+           (Name      => Name_Switches,
+            In_Arrays => Packages.Table (Pkg).Decl.Arrays);
 
-      --  Otherwise, get the Default_Switches ("language"), if they exist
+         Switches :=
+           Prj.Util.Value_Of
+             (Index     => File_Name,
+              Src_Index => 0,
+              In_Array  => Switches_Array);
+
+         --  Otherwise, get the Default_Switches ("language"), if they exist
+
+         if Switches = Nil_Variable_Value then
+            Defaults := Prj.Util.Value_Of
+              (Name      => Name_Default_Switches,
+               In_Arrays => Packages.Table (Pkg).Decl.Arrays);
+            Switches := Prj.Util.Value_Of
+              (Index     => Language_Names.Table (Language),
+               Src_Index => 0,
+               In_Array  => Defaults);
+         end if;
 
-      if Switches = Nil_Variable_Value then
-         Defaults := Prj.Util.Value_Of
-           (Name      => Name_Default_Switches,
-            In_Arrays => Packages.Table (Pkg).Decl.Arrays);
-         Switches := Prj.Util.Value_Of
-           (Index     => Language_Names.Table (Language),
-            Src_Index => 0,
-            In_Array  => Defaults);
-      end if;
+         --  If there are switches, add them to Arguments
 
-      --  If there are switches, add them to Arguments
+         if Switches /= Nil_Variable_Value then
+            Element_Id := Switches.Values;
+            while Element_Id /= Nil_String loop
+               Element := String_Elements.Table (Element_Id);
 
-      if Switches /= Nil_Variable_Value then
-         Element_Id := Switches.Values;
-         while Element_Id /= Nil_String loop
-            Element := String_Elements.Table (Element_Id);
+               if Element.Value /= No_Name then
+                  Get_Name_String (Element.Value);
 
-            if Element.Value /= No_Name then
-               Get_Name_String (Element.Value);
+                  if not Quiet_Output then
 
-               if not Quiet_Output then
+                     --  When not in quiet output (no -q), check that the
+                     --  switch is not the concatenation of several valid
+                     --  switches, such as "-g -v". If it is, issue a warning.
 
-                  --  When not in quiet output (no -q), check that the switch
-                  --  is not the concatenation of several valid switches,
-                  --  such as "-g -v". If it is, issue a warning.
+                     Check (Option => Name_Buffer (1 .. Name_Len));
+                  end if;
 
-                  Check (Option => Name_Buffer (1 .. Name_Len));
+                  Add_Argument (Name_Buffer (1 .. Name_Len), True);
                end if;
 
-               Add_Argument (Name_Buffer (1 .. Name_Len), True);
-            end if;
-
-            Element_Id := Element.Next;
-         end loop;
+               Element_Id := Element.Next;
+            end loop;
+         end if;
       end if;
    end Add_Switches;
 
index f5200ca..b823b7b 100644 (file)
@@ -521,14 +521,14 @@ package body Sem_Elim is
                         if Get_Physical_Line_Number (P) =
                            Physical_Line_Number (N)
                         then
-                           while Sloc_Trace (Idx) /= '['
-                               and then Idx <= Last
+                           while Idx <= Last and then
+                              Sloc_Trace (Idx) /= '['
                            loop
                               Idx := Idx + 1;
                            end loop;
 
-                           if Sloc_Trace (Idx) = '['
-                             and then Idx < Last
+                           if Idx <= Last and then
+                             Sloc_Trace (Idx) = '['
                            then
                               Idx := Idx + 1;
                               Idx := Skip_Spaces;