]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 17 Apr 2009 12:16:04 +0000 (14:16 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 17 Apr 2009 12:16:04 +0000 (14:16 +0200)
2009-04-17  Javier Miranda  <miranda@adacore.com>

* sem_ch6.adb (Check_Anonymous_Return): Add missing checks to
avoid generating code that references the Current_Master
when compiling without tasks.

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

* prj-attr.adb: New project level attribute Target

* prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
attribute Target

* prj.ads (Project_Configuration): New component Target

From-SVN: r146256

gcc/ada/ChangeLog
gcc/ada/prj-attr.adb
gcc/ada/prj-nmsc.adb
gcc/ada/prj.ads
gcc/ada/sem_ch6.adb

index 45c6cadece6962def2651ebe02736fd94cf24440..b1820a09d15b400bfa5f064a23834ef6f2a5203a 100644 (file)
@@ -1,3 +1,18 @@
+2009-04-17  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch6.adb (Check_Anonymous_Return): Add missing checks to
+       avoid generating code that references the Current_Master
+       when compiling without tasks.
+
+2009-04-17  Vincent Celier  <celier@adacore.com>
+
+       * prj-attr.adb: New project level attribute Target
+       
+       * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
+       attribute Target
+       
+       * prj.ads (Project_Configuration): New component Target
+
 2009-04-17  Thomas Quinot  <quinot@adacore.com>
 
        * exp_ch7.adb (Expand_Ctrl_Function_Call): Remove incorrect special
index 4aaecaa740a8cf4b63a956b7d09e7e43c362489d..81a611f7800f751db3846255dd375b8cc362604a 100644 (file)
@@ -116,6 +116,7 @@ package body Prj.Attr is
    "Satoolchain_description#" &
    "Saobject_generated#" &
    "Saobjects_linked#" &
+   "SVtarget#" &
 
    --  Configuration - Libraries
 
index 9b173bccc5251d3dd77d0c35a1c670e982d8734b..e9bc518de69fb9978c98a1831b4723baa0ec2427 100644 (file)
@@ -1977,7 +1977,13 @@ package body Prj.Nmsc is
               In_Tree.Variable_Elements.Table (Attribute_Id);
 
             if not Attribute.Value.Default then
-               if Attribute.Name = Name_Library_Builder then
+               if Attribute.Name = Name_Target then
+
+                  --  Attribute Target: the target specified
+
+                  Data.Config.Target := Attribute.Value.Value;
+
+               elsif Attribute.Name = Name_Library_Builder then
 
                   --  Attribute Library_Builder: the application to invoke
                   --  to build libraries.
index db348b7a039106f3fa91cee459098a4336238be9..aa8d88f7571e11cb37f8cbdbf0fe904e6b3ba02b 100644 (file)
@@ -997,6 +997,9 @@ package Prj is
    --  The format of the different response files
 
    type Project_Configuration is record
+      Target                        : Name_Id         := No_Name;
+      --  The target of the configuration, when specified
+
       Run_Path_Option               : Name_List_Index := No_Name_List;
       --  The option to use when linking to specify the path where to look for
       --  libraries.
@@ -1106,7 +1109,8 @@ package Prj is
    end record;
 
    Default_Project_Config : constant Project_Configuration :=
-                              (Run_Path_Option               => No_Name_List,
+                              (Target                        => No_Name,
+                               Run_Path_Option               => No_Name_List,
                                Executable_Suffix             => No_Name,
                                Linker                        => No_Path,
                                Map_File_Option               => No_Name,
index a9dd4af54e19c108a92dd3c6f06d003ce602e9e6..c51f8435fd498df10707927d0a3c50df27a006e0 100644 (file)
@@ -47,6 +47,8 @@ with Nlists;   use Nlists;
 with Nmake;    use Nmake;
 with Opt;      use Opt;
 with Output;   use Output;
+with Restrict; use Restrict;
+with Rident;   use Rident;
 with Rtsfind;  use Rtsfind;
 with Sem;      use Sem;
 with Sem_Aux;  use Sem_Aux;
@@ -1485,6 +1487,11 @@ package body Sem_Ch6 is
                           and then
                         Is_Limited_Record (Designated_Type (Etype (Scop)))))
            and then Expander_Active
+
+            --  Avoid cases with no tasking support
+
+           and then RTE_Available (RE_Current_Master)
+           and then not Restriction_Active (No_Task_Hierarchy)
          then
             Decl :=
               Make_Object_Declaration (Loc,