]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 17 Aug 2009 10:33:58 +0000 (12:33 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 17 Aug 2009 10:33:58 +0000 (12:33 +0200)
2009-08-17  Vasiliy Fofanov  <fofanov@adacore.com>

* a-calend-vms.adb: Fix typo.

2009-08-17  Tristan Gingold  <gingold@adacore.com>

* s-taprop-posix.adb: Round up the stack size to avoid failure on
Darwin.

2009-08-17  Gary Dismukes  <dismukes@adacore.com>

* sem_cat.adb (Validate_Static_Object_Name): Update comment.

2009-08-17  Vincent Celier  <celier@adacore.com>

* make.adb (Arguments_Collected): Unneeded, removed
(Change_To_Object_Directory): Use Project directly. Add pragma Assert to
ensure caller does not pass in No_Project.
(Compile): Add new parameter Project. Let procedure
Collect_Arguments_And_Compile provide the proper value.

* switch-c.adb: Add documentation for -gnatea and -gnatez

2009-08-17  Ben Brosgol  <brosgol@adacore.com>

* gnat_ugn.texi: Changed name of package in SAL example, to avoid
clash with Ada 2005 reserved word (interface).

From-SVN: r150838

gcc/ada/ChangeLog
gcc/ada/a-calend-vms.adb
gcc/ada/gnat_ugn.texi
gcc/ada/make.adb
gcc/ada/s-taprop-posix.adb
gcc/ada/sem_cat.adb
gcc/ada/switch-c.adb

index d77bb1afbf4b7c95cb04a72421549514be5a8a66..8dfceb4b01ba30c30e8402f2714847f9cc895b9f 100644 (file)
@@ -1,3 +1,31 @@
+2009-08-17  Vasiliy Fofanov  <fofanov@adacore.com>
+
+       * a-calend-vms.adb: Fix typo.
+
+2009-08-17  Tristan Gingold  <gingold@adacore.com>
+
+       * s-taprop-posix.adb: Round up the stack size to avoid failure on
+       Darwin.
+
+2009-08-17  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_cat.adb (Validate_Static_Object_Name): Update comment.
+
+2009-08-17  Vincent Celier  <celier@adacore.com>
+
+       * make.adb (Arguments_Collected): Unneeded, removed
+       (Change_To_Object_Directory): Use Project directly. Add pragma Assert to
+       ensure caller does not pass in No_Project.
+       (Compile): Add new parameter Project. Let procedure
+       Collect_Arguments_And_Compile provide the proper value.
+
+       * switch-c.adb: Add documentation for -gnatea and -gnatez
+
+2009-08-17  Ben Brosgol  <brosgol@adacore.com>
+
+       * gnat_ugn.texi: Changed name of package in SAL example, to avoid
+       clash with Ada 2005 reserved word (interface).
+
 2009-08-17  Robert Dewar  <dewar@adacore.com>
 
        * a-crbtgk.adb, a-crdlli.adb, a-direct.adb, a-caldel-vms.adb,
index 3daf4e0c185cc010b78835c1427add61dee2b396..788ff28a4d0145fb80b82dfda5fa4816963854db 100644 (file)
@@ -921,7 +921,7 @@ package body Ada.Calendar is
 
          --  Step 3: Handle leap second occurrences
 
-         tm_Sec := (if Leap_Sec then 60 else Second);
+         tm_sec := (if Leap_Sec then 60 else Second);
       end To_Struct_Tm;
 
       ------------------
index 97e5cf493016515b80d13da4f0ec312786fe0dba..7a65203b7fe0047b2a71648982aaabf48513f339 100644 (file)
@@ -19433,7 +19433,7 @@ or @code{pragma Convention}.
 Here is an example of simple library interface for use with C main program:
 
 @smallexample @c ada
-package Interface is
+package My_Package is
 
    procedure Do_Something;
    pragma Export (C, Do_Something, "do_something");
@@ -19441,7 +19441,7 @@ package Interface is
    procedure Do_Something_Else;
    pragma Export (C, Do_Something_Else, "do_something_else");
 
-end Interface;
+end My_Package;
 @end smallexample
 
 @noindent
index 59d794cc884948d8571bfad2e5005b607fdc9e9c..20fc989a0156ef35d69e8704375698cca185d0ed 100644 (file)
@@ -519,10 +519,6 @@ package body Make is
    Last_Argument : Natural := 0;
    --  Last index of arguments in Arguments above
 
-   Arguments_Collected : Boolean := False;
-   --  Set to True when the arguments for the next invocation of the compiler
-   --  have been collected.
-
    Arguments_Project : Project_Id;
    --  Project id, if any, of the source to be compiled
 
@@ -1359,32 +1355,24 @@ package body Make is
    --------------------------------
 
    procedure Change_To_Object_Directory (Project : Project_Id) is
-      Actual_Project   : Project_Id;
       Object_Directory : Path_Name_Type;
 
    begin
-      --  For sources outside of any project, compilation occurs in the object
-      --  directory of the main project, otherwise we use the project given.
-
-      if Project = No_Project then
-         Actual_Project := Main_Project;
-      else
-         Actual_Project := Project;
-      end if;
+      pragma Assert (Project /= No_Project);
 
       --  Nothing to do if the current working directory is already the correct
       --  object directory.
 
-      if Project_Of_Current_Object_Directory /= Actual_Project then
-         Project_Of_Current_Object_Directory := Actual_Project;
-         Object_Directory := Actual_Project.Object_Directory.Name;
+      if Project_Of_Current_Object_Directory /= Project then
+         Project_Of_Current_Object_Directory := Project;
+         Object_Directory := Project.Object_Directory.Name;
 
          --  Set the working directory to the object directory of the actual
          --  project.
 
          if Verbose_Mode then
             Write_Str  ("Changing to object directory of """);
-            Write_Name (Actual_Project.Display_Name);
+            Write_Name (Project.Display_Name);
             Write_Str  (""": """);
             Write_Name (Object_Directory);
             Write_Line ("""");
@@ -1399,9 +1387,9 @@ package body Make is
       when Directory_Error =>
          Make_Failed ("unable to change to object directory """ &
                       Path_Or_File_Name
-                        (Actual_Project.Object_Directory.Name) &
+                        (Project.Object_Directory.Name) &
                       """ of project " &
-                      Get_Name_String (Actual_Project.Display_Name));
+                      Get_Name_String (Project.Display_Name));
    end Change_To_Object_Directory;
 
    -----------
@@ -2201,7 +2189,6 @@ package body Make is
       Args           : Argument_List)
    is
    begin
-      Arguments_Collected := True;
       Arguments_Project := No_Project;
       Last_Argument := 0;
       Add_Arguments (Args);
@@ -2502,13 +2489,12 @@ package body Make is
       procedure Check_Standard_Library;
       --  Check if s-stalib.adb needs to be compiled
 
-      procedure Collect_Arguments_And_Compile
-        (Source_File  : File_Name_Type;
-         Source_Index : Int);
+      procedure Collect_Arguments_And_Compile (Source_Index : Int);
       --  Collect arguments from project file (if any) and compile
 
       function Compile
-        (S            : File_Name_Type;
+        (Project      : Project_Id;
+         S            : File_Name_Type;
          L            : File_Name_Type;
          Source_Index : Int;
          Args         : Argument_List) return Process_Id;
@@ -2709,23 +2695,13 @@ package body Make is
       -- Collect_Arguments_And_Compile --
       -----------------------------------
 
-      procedure Collect_Arguments_And_Compile
-        (Source_File  : File_Name_Type;
-         Source_Index : Int)
-      is
+      procedure Collect_Arguments_And_Compile (Source_Index : Int) is
       begin
          --  Process_Created will be set True if an attempt is made to compile
          --  the source, that is if it is not in an externally built project.
 
          Process_Created := False;
 
-         --  If arguments not yet collected (in Check), collect them now
-
-         if not Arguments_Collected then
-            Collect_Arguments
-              (Source_File, Source_Index, Source_File = Main_Source, Args);
-         end if;
-
          --  If we use mapping file (-P or -C switches), then get one
 
          if Create_Mapping_File then
@@ -2769,13 +2745,10 @@ package body Make is
                   end;
                end if;
 
-               --  Change to object directory of the project file, if necessary
-
-               Change_To_Object_Directory (Arguments_Project);
-
                Pid :=
                  Compile
-                   (File_Name_Type (Arguments_Path_Name),
+                   (Arguments_Project,
+                    File_Name_Type (Arguments_Path_Name),
                     Lib_File,
                     Source_Index,
                     Arguments (1 .. Last_Argument));
@@ -2786,12 +2759,13 @@ package body Make is
             --  If this is a source outside of any project file, make sure it
             --  will be compiled in object directory of the main project file.
 
-            if Main_Project /= No_Project then
-               Change_To_Object_Directory (Arguments_Project);
-            end if;
-
-            Pid := Compile (Full_Source_File, Lib_File, Source_Index,
-                            Arguments (1 .. Last_Argument));
+            Pid :=
+              Compile
+                (Main_Project,
+                 Full_Source_File,
+                 Lib_File,
+                 Source_Index,
+                 Arguments (1 .. Last_Argument));
             Process_Created := True;
          end if;
       end Collect_Arguments_And_Compile;
@@ -2801,7 +2775,8 @@ package body Make is
       -------------
 
       function Compile
-        (S            : File_Name_Type;
+        (Project      : Project_Id;
+         S            : File_Name_Type;
          L            : File_Name_Type;
          Source_Index : Int;
          Args         : Argument_List) return Process_Id
@@ -2985,6 +2960,12 @@ package body Make is
          Comp_Last := Comp_Last + 1;
          Comp_Args (Comp_Last) := new String'(Name_Buffer (1 .. Name_Len));
 
+         --  Change to object directory of the project file, if necessary
+
+         if Project /= No_Project then
+            Change_To_Object_Directory (Project);
+         end if;
+
          GNAT.OS_Lib.Normalize_Arguments (Comp_Args (Args'First .. Comp_Last));
 
          Comp_Last := Comp_Last + 1;
@@ -3225,8 +3206,6 @@ package body Make is
                --  The source file that we are checking can be located
 
                else
-                  Arguments_Collected := False;
-
                   Collect_Arguments (Source_File, Source_Index,
                                      Source_File = Main_Source, Args);
 
@@ -3314,8 +3293,7 @@ package body Make is
                         --  Start the compilation and record it. We can do
                         --  this because there is at least one free process.
 
-                        Collect_Arguments_And_Compile
-                          (Source_File, Source_Index);
+                        Collect_Arguments_And_Compile (Source_Index);
 
                         --  Make sure we could successfully start
                         --  the Compilation.
index 8e9ba26ce64caecccfb5f7a56706675d46b1323b..ac147000b7a8d9d5d0ab46ac1533facae4d8ade7 100644 (file)
@@ -926,6 +926,7 @@ package body System.Task_Primitives.Operations is
    is
       Attributes          : aliased pthread_attr_t;
       Adjusted_Stack_Size : Interfaces.C.size_t;
+      Page_Size           : constant Interfaces.C.size_t := Get_Page_Size;
       Result              : Interfaces.C.int;
 
       function Thread_Body_Access is new
@@ -946,9 +947,15 @@ package body System.Task_Primitives.Operations is
          --  to be sure the effective stack size is greater than what
          --  has been asked.
 
-         Adjusted_Stack_Size := Adjusted_Stack_Size + 2 * Get_Page_Size;
+         Adjusted_Stack_Size := Adjusted_Stack_Size + 2 * Page_Size;
       end if;
 
+      --  Round stack size as this is required by some OSes (Darwin)
+
+      Adjusted_Stack_Size := Adjusted_Stack_Size + Page_Size - 1;
+      Adjusted_Stack_Size :=
+        Adjusted_Stack_Size - Adjusted_Stack_Size mod Page_Size;
+
       Result := pthread_attr_init (Attributes'Access);
       pragma Assert (Result = 0 or else Result = ENOMEM);
 
index d5d38235f3605609b91dd03afe227fbbc3357bc8..c8d06e8cfec82c9a960cdced1303c26b5d63efc0 100644 (file)
@@ -2191,10 +2191,8 @@ package body Sem_Cat is
             Flag_Non_Static_Expr
               ("non-static object name in preelaborated unit", N);
 
-         --  We take the view that a constant defined in another preelaborated
-         --  unit is preelaborable, even though it may have a private type and
-         --  thus appear non-static in a client. This must be the intent of
-         --  the language, but currently is an RM gap ???
+         --  Give an error for a reference to a nonstatic constant, unless the
+         --  constant is in another GNAT library unit that is preelaborable.
 
          elsif Ekind (Entity (N)) = E_Constant
            and then not Is_Static_Expression (N)
index 6825f4ec038efddb251f5dea1be897a90d377b68..1ecae61a01360b5500dc79c422bd437df5ec40d7 100644 (file)
@@ -309,6 +309,11 @@ package body Switch.C is
 
                case Switch_Chars (Ptr) is
 
+                  --  -gnatea (initial delimiter of explicit switches)
+                  --  All switches that come before -gnatea have been added by
+                  --  the GCC driver and are not stored in the ALI file.
+                  --  See also -gnatez below.
+
                   when 'a' =>
                      Store_Switch := False;
                      Enable_Switch_Storing;
@@ -462,14 +467,20 @@ package body Switch.C is
 
                      Ptr := Max + 1;
 
-                  --  -gnatez ???
+                  --  -gnatez (final delimiter of explicit switches)
+                  --  All switches that come after -gnatez have been added by
+                  --  the GCC driver and are not stored in the ALI file.
+                  --  See also -gnatea above.
 
                   when 'z' =>
                      Store_Switch := False;
                      Disable_Switch_Storing;
                      Ptr := Ptr + 1;
 
-                  --  -gnateS (Store SCO information)
+                  --  -gnateS (generate SCO information)
+                  --  Include Source Coverage Obligation information in ALI
+                  --  files for the benefit of source coverage analysis tools
+                  --  (xcov).
 
                   when 'S' =>
                      Generate_SCO := True;