[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Wed, 23 Jun 2010 06:31:57 +0000 (08:31 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 23 Jun 2010 06:31:57 +0000 (08:31 +0200)
2010-06-23  Jose Ruiz  <ruiz@adacore.com>

* a-reatim.adb, a-retide.adb: Move the initialization of the tasking
run time from Ada.Real_Time.Delays to Ada.Real_Time. This way, calls to
Clock (without delays) use a run time which is properly initialized.

2010-06-23  Vincent Celier  <celier@adacore.com>

* make.adb: Do not set Check_Readonly_Files when setting Must_Compile,
when -f -u and a main is specified on the command line. However,
attempt to compile even when the ALI file is read-only when
Must_Compile is True.

2010-06-23  Thomas Quinot  <quinot@adacore.com>

* checks.adb, g-pehage.adb, cstand.adb: Minor code factorization.

From-SVN: r161248

gcc/ada/ChangeLog
gcc/ada/a-reatim.adb
gcc/ada/a-retide.adb
gcc/ada/checks.adb
gcc/ada/cstand.adb
gcc/ada/g-pehage.adb
gcc/ada/make.adb

index 361182c438c01e4f2d61cc3a997b4c99ac716ef2..edecef66f7ac78bd8266b1e3d7302a5195fd82be 100644 (file)
@@ -1,3 +1,20 @@
+2010-06-23  Jose Ruiz  <ruiz@adacore.com>
+
+       * a-reatim.adb, a-retide.adb: Move the initialization of the tasking
+       run time from Ada.Real_Time.Delays to Ada.Real_Time. This way, calls to
+       Clock (without delays) use a run time which is properly initialized.
+
+2010-06-23  Vincent Celier  <celier@adacore.com>
+
+       * make.adb: Do not set Check_Readonly_Files when setting Must_Compile,
+       when -f -u and a main is specified on the command line. However,
+       attempt to compile even when the ALI file is read-only when
+       Must_Compile is True.
+
+2010-06-23  Thomas Quinot  <quinot@adacore.com>
+
+       * checks.adb, g-pehage.adb, cstand.adb: Minor code factorization.
+
 2010-06-23  Javier Miranda  <miranda@adacore.com>
 
        * sem_ch3.adb (Add_Internal_Interface_Entities): Generate internal
index 355f0db4c107fb89c1e01438ad9f20f6e45beec4..026c28941a03774bb7ec5ad46fef750a2ba15da8 100644 (file)
@@ -32,7 +32,7 @@
 --                                                                          --
 ------------------------------------------------------------------------------
 
-with System.OS_Primitives;
+with System.Tasking;
 
 package body Ada.Real_Time is
 
@@ -245,5 +245,9 @@ package body Ada.Real_Time is
    end To_Time_Span;
 
 begin
-   System.OS_Primitives.Initialize;
+   --  Ensure that the tasking run time is initialized when using clock and/or
+   --  delay operations. The initialization routine has the required machinery
+   --  to prevent multiple calls to Initialize.
+
+   System.Tasking.Initialize;
 end Ada.Real_Time;
index f159ed6fc3322d98cef1dfb0d08c00f66dda33eb..ecc61f6913a299eb228cfa4de9c325fa19ffbc65 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---         Copyright (C) 1992-2009, Free Software Foundation, Inc.          --
+--         Copyright (C) 1992-2010, Free Software Foundation, Inc.          --
 --                                                                          --
 -- GNARL is free software; you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -75,10 +75,4 @@ package body Ada.Real_Time.Delays is
       return To_Duration (Time_Span (T));
    end To_Duration;
 
-begin
-   --  Ensure that the tasking run time is initialized when using delay
-   --  operations. The initialization routine has the required machinery to
-   --  prevent multiple calls to Initialize.
-
-   System.Tasking.Initialize;
 end Ada.Real_Time.Delays;
index 9261a2798827f0227d009a8f9f5fdf7eaefb16d7..59270e875a92fd539a5b476864c646102d314608 100644 (file)
@@ -3351,7 +3351,7 @@ package body Checks is
                         Indx := Next_Index (Indx);
                      end loop;
 
-                     --  if The index type is a formal type, or derived from
+                     --  If the index type is a formal type or derived from
                      --  one, the bounds are not static.
 
                      if Is_Generic_Type (Root_Type (Etype (Indx))) then
@@ -3378,8 +3378,8 @@ package body Checks is
 
                            --  For constrained arrays, the minimum value for
                            --  Length is taken from the actual value of the
-                           --  bounds, since the index will be exactly of
-                           --  this subtype.
+                           --  bounds, since the index will be exactly of this
+                           --  subtype.
 
                            if Is_Constrained (Atyp) then
                               Lor := UI_Max (Uint_0, UL - LU + 1);
@@ -3395,7 +3395,7 @@ package body Checks is
                   end;
 
                --  No special handling for other attributes
-               --  Probably more opportunities exist here ???
+               --  Probably more opportunities exist here???
 
                when others =>
                   OK1 := False;
@@ -3416,33 +3416,31 @@ package body Checks is
             Hir := No_Uint;
       end case;
 
-      --  At this stage, if OK1 is true, then we know that the actual
-      --  result of the computed expression is in the range Lor .. Hir.
-      --  We can use this to restrict the possible range of results.
+      --  At this stage, if OK1 is true, then we know that the actual result of
+      --  the computed expression is in the range Lor .. Hir. We can use this
+      --  to restrict the possible range of results.
 
       if OK1 then
 
-         --  If the refined value of the low bound is greater than the
-         --  type high bound, then reset it to the more restrictive
-         --  value. However, we do NOT do this for the case of a modular
-         --  type where the possible upper bound on the value is above the
-         --  base type high bound, because that means the result could wrap.
+         --  If the refined value of the low bound is greater than the type
+         --  high bound, then reset it to the more restrictive value. However,
+         --  we do NOT do this for the case of a modular type where the
+         --  possible upper bound on the value is above the base type high
+         --  bound, because that means the result could wrap.
 
          if Lor > Lo
-           and then not (Is_Modular_Integer_Type (Typ)
-                           and then Hir > Hbound)
+           and then not (Is_Modular_Integer_Type (Typ) and then Hir > Hbound)
          then
             Lo := Lor;
          end if;
 
-         --  Similarly, if the refined value of the high bound is less
-         --  than the value so far, then reset it to the more restrictive
-         --  value. Again, we do not do this if the refined low bound is
-         --  negative for a modular type, since this would wrap.
+         --  Similarly, if the refined value of the high bound is less than the
+         --  value so far, then reset it to the more restrictive value. Again,
+         --  we do not do this if the refined low bound is negative for a
+         --  modular type, since this would wrap.
 
          if Hir < Hi
-           and then not (Is_Modular_Integer_Type (Typ)
-                          and then Lor < Uint_0)
+           and then not (Is_Modular_Integer_Type (Typ) and then Lor < Uint_0)
          then
             Hi := Hir;
          end if;
@@ -3456,8 +3454,8 @@ package body Checks is
       Determine_Range_Cache_Hi (Cindex) := Hi;
       return;
 
-   --  If any exception occurs, it means that we have some bug in the compiler
-   --  possibly triggered by a previous error, or by some unforseen peculiar
+   --  If any exception occurs, it means that we have some bug in the compiler,
+   --  possibly triggered by a previous error, or by some unforeseen peculiar
    --  occurrence. However, this is only an optimization attempt, so there is
    --  really no point in crashing the compiler. Instead we just decide, too
    --  bad, we can't figure out a range in this case after all.
index 7cabe91b9023432801bfcf36f406aacdbd01b514..9f9332b72419a662566f5e062fc69b8d9649836f 100644 (file)
@@ -324,7 +324,8 @@ package body CStand is
       --  Procedure to declare given entity as an exception
 
       procedure Pack_String_Type (String_Type : Entity_Id);
-      --  Generate proper tree for pragma Pack that applies to given type
+      --  Generate proper tree for pragma Pack that applies to given type, and
+      --  mark type as having the pragma.
 
       ---------------------
       -- Build_Exception --
@@ -359,6 +360,7 @@ package body CStand is
       begin
          Append (Prag, Decl_S);
          Record_Rep_Item (String_Type, Prag);
+         Set_Has_Pragma_Pack (String_Type, True);
       end Pack_String_Type;
 
    --  Start of processing for Create_Standard
@@ -714,7 +716,6 @@ package body CStand is
       Set_Component_Size  (Standard_String, Uint_8);
       Init_Size_Align     (Standard_String);
       Set_Alignment       (Standard_String, Uint_1);
-      Set_Has_Pragma_Pack (Standard_String, True);
       Pack_String_Type    (Standard_String);
 
       --  On targets where a storage unit is larger than a byte (such as AAMP),
@@ -758,7 +759,6 @@ package body CStand is
       Set_Component_Type  (Standard_Wide_String, Standard_Wide_Character);
       Set_Component_Size  (Standard_Wide_String, Uint_16);
       Init_Size_Align     (Standard_Wide_String);
-      Set_Has_Pragma_Pack (Standard_Wide_String, True);
       Pack_String_Type    (Standard_Wide_String);
 
       --  Set index type of Wide_String
@@ -796,7 +796,6 @@ package body CStand is
       Set_Component_Size   (Standard_Wide_Wide_String, Uint_32);
       Init_Size_Align      (Standard_Wide_Wide_String);
       Set_Is_Ada_2005_Only (Standard_Wide_Wide_String);
-      Set_Has_Pragma_Pack  (Standard_Wide_Wide_String, True);
       Pack_String_Type     (Standard_Wide_Wide_String);
 
       --  Set index type of Wide_Wide_String
index 91344a0ed8cf822c9f908f02fcfd5a9bb1a2c1a3..f64ee4cf693486ff60c7ff3dc7d6719d868c084e 100644 (file)
@@ -146,7 +146,7 @@ package body GNAT.Perfect_Hash_Generators is
    --  leading spaces if required by width W.
 
    function Trim_Trailing_Nuls (Str : String) return String;
-   --  Return Str, but with trailing NUL characters removed.
+   --  Return Str with trailing NUL characters removed
 
    Output : File_Descriptor renames GNAT.OS_Lib.Standout;
    --  Shortcuts
index 8251052258b646615e34ad86a76cc24bb2e8ce3e..fe157b0d9fe2b1e44ed05ea241315b44640059af 100644 (file)
@@ -2448,8 +2448,8 @@ package body Make is
       --  Info on the mapping file
 
       Need_To_Check_Standard_Library : Boolean :=
-                                         Check_Readonly_Files
-                                           and not Unique_Compile;
+                                         (Check_Readonly_Files or Must_Compile)
+                                           and Unique_Compile;
 
       procedure Add_Process
         (Pid           : Process_Id;
@@ -2905,7 +2905,7 @@ package body Make is
 
          begin
             if Is_Predefined_File_Name (Fname, False) then
-               if Check_Readonly_Files then
+               if Check_Readonly_Files or else Must_Compile then
                   Comp_Args (Comp_Args'First + 2 .. Comp_Last + 1) :=
                     Comp_Args (Comp_Args'First + 1 .. Comp_Last);
                   Comp_Last := Comp_Last + 1;
@@ -3103,7 +3103,7 @@ package body Make is
                         if Is_Marked (Sfile, Source_Index) then
                            Debug_Msg ("Skipping marked file:", Sfile);
 
-                        elsif not Check_Readonly_Files
+                        elsif not (Check_Readonly_Files or Must_Compile)
                           and then Is_Internal_File_Name (Sfile, False)
                         then
                            Debug_Msg ("Skipping internal file:", Sfile);
@@ -3283,16 +3283,15 @@ package body Make is
                Executable_Obsolete := True;
             end if;
 
-            In_Lib_Dir := not Check_Readonly_Files
-                            and then Full_Lib_File /= No_File
-                            and then In_Ada_Lib_Dir (Full_Lib_File);
+            In_Lib_Dir := Full_Lib_File /= No_File
+                          and then In_Ada_Lib_Dir (Full_Lib_File);
 
             --  Since the following requires a system call, we precompute it
             --  when needed.
 
             if not In_Lib_Dir then
                if Full_Lib_File /= No_File
-                 and then not Check_Readonly_Files
+                 and then not (Check_Readonly_Files or else Must_Compile)
                then
                   Get_Name_String (Full_Lib_File);
                   Name_Buffer (Name_Len + 1) := ASCII.NUL;
@@ -3334,7 +3333,7 @@ package body Make is
                --  Source and library files can be located but are internal
                --  files.
 
-            elsif not Check_Readonly_Files
+            elsif not (Check_Readonly_Files or else Must_Compile)
               and then Full_Lib_File /= No_File
               and then Is_Internal_File_Name (Source_File, False)
             then
@@ -5196,7 +5195,6 @@ package body Make is
         and then not Unique_Compile_All_Projects
         and then Main_On_Command_Line
       then
-         Check_Readonly_Files := True;
          Must_Compile := True;
       end if;