aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/prj-proc.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-07-13 11:28:05 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-07-13 11:28:05 +0200
commit72a3d7c71d19380804659c30babab27015a14c07 (patch)
tree41ba0cda502a543970275f8680cecac1ddb0e6b3 /gcc/ada/prj-proc.adb
parent223eab977a61c48f62cb0cbb9c009afefa6f6cbc (diff)
downloadgcc-72a3d7c71d19380804659c30babab27015a14c07.zip
gcc-72a3d7c71d19380804659c30babab27015a14c07.tar.gz
gcc-72a3d7c71d19380804659c30babab27015a14c07.tar.bz2
[multiple changes]
2009-07-13 Thomas Quinot <quinot@adacore.com> * rtsfind.ads, exp_dist.adb (RE_Allocate_Buffer): Runtime entry removed, not used anymore. (Exp_Dist.PolyORB_Support.Helpers.Assign_Opaque_From_Any): New subprogram, implements copy of an Any value into a limited object. (Exp_Dist.PolyORB_Support.Build_General_Calling_Stubs, Exp_Dist.PolyORB_Support.Build_Subprogram_Receiving_Stubs, Exp_Dist.PolyORB_Support.Helpers.Build_From_Any_Function): For the case of parameters of a limited type, use the above new subprogram. 2009-07-13 Emmanuel Briot <briot@adacore.com> * prj-nmsc.adb, prj-proc.adb, mlib.adb (Add_Source): new parameter Location. (Copy_ALI_Files): Avoid calls to read when pointing outside of the allocated space. (Error_Report): Remove global variable, replaced by parameters. From-SVN: r149560
Diffstat (limited to 'gcc/ada/prj-proc.adb')
-rw-r--r--gcc/ada/prj-proc.adb56
1 files changed, 35 insertions, 21 deletions
diff --git a/gcc/ada/prj-proc.adb b/gcc/ada/prj-proc.adb
index ef39813..6f9897f 100644
--- a/gcc/ada/prj-proc.adb
+++ b/gcc/ada/prj-proc.adb
@@ -39,8 +39,6 @@ with GNAT.HTable;
package body Prj.Proc is
- Error_Report : Put_Line_Access := null;
-
package Processed_Projects is new GNAT.HTable.Simple_HTable
(Header_Num => Header_Num,
Element => Project_Id,
@@ -82,6 +80,7 @@ package body Prj.Proc is
(In_Tree : Project_Tree_Ref;
Project : Project_Id;
Current_Dir : String;
+ Report_Error : Put_Line_Access;
When_No_Sources : Error_Warning;
Require_Sources_Other_Lang : Boolean;
Compiler_Driver_Mandatory : Boolean;
@@ -107,6 +106,7 @@ package body Prj.Proc is
function Expression
(Project : Project_Id;
In_Tree : Project_Tree_Ref;
+ Report_Error : Put_Line_Access;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Pkg : Package_Id;
@@ -129,6 +129,7 @@ package body Prj.Proc is
procedure Process_Declarative_Items
(Project : Project_Id;
In_Tree : Project_Tree_Ref;
+ Report_Error : Put_Line_Access;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Pkg : Package_Id;
@@ -140,6 +141,7 @@ package body Prj.Proc is
procedure Recursive_Process
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
+ Report_Error : Put_Line_Access;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Extended_By : Project_Id);
@@ -282,6 +284,7 @@ package body Prj.Proc is
(In_Tree : Project_Tree_Ref;
Project : Project_Id;
Current_Dir : String;
+ Report_Error : Put_Line_Access;
When_No_Sources : Error_Warning;
Require_Sources_Other_Lang : Boolean;
Compiler_Driver_Mandatory : Boolean;
@@ -304,7 +307,7 @@ package body Prj.Proc is
Require_Sources_Other_Lang => Require_Sources_Other_Lang,
Compiler_Driver_Mandatory => Compiler_Driver_Mandatory,
When_No_Sources => When_No_Sources,
- Report_Error => null);
+ Report_Error => Report_Error);
Check_All_Projects (Project, Data, Imported_First => True);
@@ -485,6 +488,7 @@ package body Prj.Proc is
function Expression
(Project : Project_Id;
In_Tree : Project_Tree_Ref;
+ Report_Error : Put_Line_Access;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Pkg : Package_Id;
@@ -588,6 +592,7 @@ package body Prj.Proc is
Value := Expression
(Project => Project,
In_Tree => In_Tree,
+ Report_Error => Report_Error,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Pkg => Pkg,
@@ -637,6 +642,7 @@ package body Prj.Proc is
Expression
(Project => Project,
In_Tree => In_Tree,
+ Report_Error => Report_Error,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Pkg => Pkg,
@@ -1044,6 +1050,7 @@ package body Prj.Proc is
Def_Var := Expression
(Project => Project,
In_Tree => In_Tree,
+ Report_Error => Report_Error,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Pkg => Pkg,
@@ -1061,13 +1068,13 @@ package body Prj.Proc is
if Value = No_Name then
if not Quiet_Output then
- if Error_Report = null then
+ if Report_Error = null then
Error_Msg
("?undefined external reference",
Location_Of
(The_Current_Term, From_Project_Node_Tree));
else
- Error_Report
+ Report_Error
("warning: """ & Get_Name_String (Name) &
""" is an undefined external reference",
Project, In_Tree);
@@ -1277,6 +1284,7 @@ package body Prj.Proc is
procedure Process_Declarative_Items
(Project : Project_Id;
In_Tree : Project_Tree_Ref;
+ Report_Error : Put_Line_Access;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Pkg : Package_Id;
@@ -1412,6 +1420,7 @@ package body Prj.Proc is
Process_Declarative_Items
(Project => Project,
In_Tree => In_Tree,
+ Report_Error => Report_Error,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Pkg => New_Pkg,
@@ -1600,13 +1609,13 @@ package body Prj.Proc is
end loop;
if Orig_Array = No_Array then
- if Error_Report = null then
+ if Report_Error = null then
Error_Msg
("associative array value not found",
Location_Of
(Current_Item, From_Project_Node_Tree));
else
- Error_Report
+ Report_Error
("associative array value not found",
Project, In_Tree);
end if;
@@ -1712,6 +1721,7 @@ package body Prj.Proc is
Expression
(Project => Project,
In_Tree => In_Tree,
+ Report_Error => Report_Error,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Pkg => Pkg,
@@ -1749,13 +1759,13 @@ package body Prj.Proc is
Error_Msg_Name_1 :=
Name_Of (Current_Item, From_Project_Node_Tree);
- if Error_Report = null then
+ if Report_Error = null then
Error_Msg
("no value defined for %%",
Location_Of
(Current_Item, From_Project_Node_Tree));
else
- Error_Report
+ Report_Error
("no value defined for " &
Get_Name_String (Error_Msg_Name_1),
Project, In_Tree);
@@ -1794,7 +1804,7 @@ package body Prj.Proc is
Name_Of
(Current_Item, From_Project_Node_Tree);
- if Error_Report = null then
+ if Report_Error = null then
Error_Msg
("value %% is illegal " &
"for typed string %%",
@@ -1803,7 +1813,7 @@ package body Prj.Proc is
From_Project_Node_Tree));
else
- Error_Report
+ Report_Error
("value """ &
Get_Name_String (Error_Msg_Name_1) &
""" is illegal for typed string """ &
@@ -2246,6 +2256,7 @@ package body Prj.Proc is
Process_Declarative_Items
(Project => Project,
In_Tree => In_Tree,
+ Report_Error => Report_Error,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Pkg => Pkg,
@@ -2280,8 +2291,6 @@ package body Prj.Proc is
Reset_Tree : Boolean := True)
is
begin
- Error_Report := Report_Error;
-
if Reset_Tree then
-- Make sure there are no projects in the data structure
@@ -2297,6 +2306,7 @@ package body Prj.Proc is
Recursive_Process
(Project => Project,
In_Tree => In_Tree,
+ Report_Error => Report_Error,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Extended_By => No_Project);
@@ -2332,12 +2342,12 @@ package body Prj.Proc is
-- Start of processing for Process_Project_Tree_Phase_2
begin
- Error_Report := Report_Error;
-
Success := True;
if Project /= No_Project then
- Check (In_Tree, Project, Current_Dir, When_No_Sources,
+ Check (In_Tree, Project, Current_Dir,
+ When_No_Sources => When_No_Sources,
+ Report_Error => Report_Error,
Require_Sources_Other_Lang => Require_Sources_Other_Lang,
Compiler_Driver_Mandatory => Compiler_Driver_Mandatory,
Allow_Duplicate_Basenames => Allow_Duplicate_Basenames);
@@ -2390,13 +2400,13 @@ package body Prj.Proc is
if Extending2.Virtual then
Error_Msg_Name_1 := Prj.Project.Display_Name;
- if Error_Report = null then
+ if Report_Error = null then
Error_Msg
("project %% cannot be extended by a virtual" &
" project with the same object directory",
Prj.Project.Location);
else
- Error_Report
+ Report_Error
("project """ &
Get_Name_String (Error_Msg_Name_1) &
""" cannot be extended by a virtual " &
@@ -2408,7 +2418,7 @@ package body Prj.Proc is
Error_Msg_Name_1 := Extending2.Display_Name;
Error_Msg_Name_2 := Prj.Project.Display_Name;
- if Error_Report = null then
+ if Report_Error = null then
Error_Msg
("project %% cannot extend project %%",
Extending2.Location);
@@ -2417,13 +2427,13 @@ package body Prj.Proc is
Extending2.Location);
else
- Error_Report
+ Report_Error
("project """ &
Get_Name_String (Error_Msg_Name_1) &
""" cannot extend project """ &
Get_Name_String (Error_Msg_Name_2) & """",
Project, In_Tree);
- Error_Report
+ Report_Error
("they share the same object directory",
Project, In_Tree);
end if;
@@ -2471,6 +2481,7 @@ package body Prj.Proc is
procedure Recursive_Process
(In_Tree : Project_Tree_Ref;
Project : out Project_Id;
+ Report_Error : Put_Line_Access;
From_Project_Node : Project_Node_Id;
From_Project_Node_Tree : Project_Node_Tree_Ref;
Extended_By : Project_Id)
@@ -2511,6 +2522,7 @@ package body Prj.Proc is
Recursive_Process
(In_Tree => In_Tree,
Project => New_Project,
+ Report_Error => Report_Error,
From_Project_Node =>
Project_Node_Of
(With_Clause, From_Project_Node_Tree),
@@ -2652,6 +2664,7 @@ package body Prj.Proc is
Recursive_Process
(In_Tree => In_Tree,
Project => Project.Extends,
+ Report_Error => Report_Error,
From_Project_Node => Extended_Project_Of
(Declaration_Node,
From_Project_Node_Tree),
@@ -2661,6 +2674,7 @@ package body Prj.Proc is
Process_Declarative_Items
(Project => Project,
In_Tree => In_Tree,
+ Report_Error => Report_Error,
From_Project_Node => From_Project_Node,
From_Project_Node_Tree => From_Project_Node_Tree,
Pkg => No_Package,