Commit d1c5f424 by Arnaud Charlet

[multiple changes]

2011-09-01  Robert Dewar  <dewar@adacore.com>

	* prj-proc.adb, exp_ch6.adb, prj-env.adb: Minor reformatting.

2011-09-01  Bob Duff  <duff@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): Need to treat "in instance
	body" the same as "in inlined body", because visibility shouldn't
	apply there.

2011-09-01  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Add_Inlined_Body): Refine previous change.

From-SVN: r178412
parent 1bb6e262
2011-09-01 Robert Dewar <dewar@adacore.com>
* prj-proc.adb, exp_ch6.adb, prj-env.adb: Minor reformatting.
2011-09-01 Bob Duff <duff@adacore.com>
* sem_aggr.adb (Resolve_Aggregate): Need to treat "in instance
body" the same as "in inlined body", because visibility shouldn't
apply there.
2011-09-01 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Add_Inlined_Body): Refine previous change.
2011-09-01 Gary Dismukes <dismukes@adacore.com> 2011-09-01 Gary Dismukes <dismukes@adacore.com>
* exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function. * exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function.
......
...@@ -7845,7 +7845,6 @@ package body Exp_Ch6 is ...@@ -7845,7 +7845,6 @@ package body Exp_Ch6 is
function Needs_BIP_Alloc_Form (Func_Id : Entity_Id) return Boolean is function Needs_BIP_Alloc_Form (Func_Id : Entity_Id) return Boolean is
pragma Assert (Is_Build_In_Place_Function (Func_Id)); pragma Assert (Is_Build_In_Place_Function (Func_Id));
Func_Typ : constant Entity_Id := Underlying_Type (Etype (Func_Id)); Func_Typ : constant Entity_Id := Underlying_Type (Etype (Func_Id));
begin begin
return not Is_Constrained (Func_Typ) or else Is_Tagged_Type (Func_Typ); return not Is_Constrained (Func_Typ) or else Is_Tagged_Type (Func_Typ);
end Needs_BIP_Alloc_Form; end Needs_BIP_Alloc_Form;
......
...@@ -342,11 +342,12 @@ package body Inline is ...@@ -342,11 +342,12 @@ package body Inline is
null; null;
-- Do not inline the package if the subprogram is an init. proc -- Do not inline the package if the subprogram is an init. proc
-- because in that case the body appears in the same unit that -- or other internally generated subprogram, because in that
-- declares the type, which will be compiled in any case. -- case the subprogram body appears in the same unit that
-- declares the type, and that body is visible to the back end.
elsif not Is_Inlined (Pack) elsif not Is_Inlined (Pack)
and then not Is_Init_Proc (E) and then Comes_From_Source (E)
then then
Set_Is_Inlined (Pack); Set_Is_Inlined (Pack);
Inlined_Bodies.Increment_Last; Inlined_Bodies.Increment_Last;
......
...@@ -836,19 +836,18 @@ package body Prj.Env is ...@@ -836,19 +836,18 @@ package body Prj.Env is
or else Source.Unit /= No_Unit_Index) or else Source.Unit /= No_Unit_Index)
then then
if Source.Unit /= No_Unit_Index then if Source.Unit /= No_Unit_Index then
-- Put the encoded unit name in the name buffer -- Put the encoded unit name in the name buffer
declare declare
Uname : constant String := Uname : constant String :=
Get_Name_String (Source.Unit.Name); Get_Name_String (Source.Unit.Name);
begin begin
Name_Len := 0; Name_Len := 0;
for J in Uname'Range loop for J in Uname'Range loop
if Uname (J) in Upper_Half_Character then if Uname (J) in Upper_Half_Character then
Store_Encoded_Character (Get_Char_Code (Uname (J))); Store_Encoded_Character (Get_Char_Code (Uname (J)));
else else
Add_Char_To_Name_Buffer (Uname (J)); Add_Char_To_Name_Buffer (Uname (J));
end if; end if;
...@@ -879,8 +878,7 @@ package body Prj.Env is ...@@ -879,8 +878,7 @@ package body Prj.Env is
end case; end case;
if Suffix /= No_File then if Suffix /= No_File then
Add_Str_To_Name_Buffer Add_Str_To_Name_Buffer (Get_Name_String (Suffix));
(Get_Name_String (Suffix));
end if; end if;
end if; end if;
...@@ -907,6 +905,8 @@ package body Prj.Env is ...@@ -907,6 +905,8 @@ package body Prj.Env is
procedure For_Every_Imported_Project is new procedure For_Every_Imported_Project is new
For_Every_Project_Imported (State => Integer, Action => Process); For_Every_Project_Imported (State => Integer, Action => Process);
-- Local variables
Dummy : Integer := 0; Dummy : Integer := 0;
-- Start of processing for Create_Mapping_File -- Start of processing for Create_Mapping_File
......
...@@ -2765,6 +2765,7 @@ package body Prj.Proc is ...@@ -2765,6 +2765,7 @@ package body Prj.Proc is
Project := Processed_Projects.Get (Name); Project := Processed_Projects.Get (Name);
if Project /= No_Project then if Project /= No_Project then
-- Make sure that, when a project is extended, the project id -- Make sure that, when a project is extended, the project id
-- of the project extending it is recorded in its data, even -- of the project extending it is recorded in its data, even
-- when it has already been processed as an imported project. -- when it has already been processed as an imported project.
...@@ -2777,13 +2778,16 @@ package body Prj.Proc is ...@@ -2777,13 +2778,16 @@ package body Prj.Proc is
return; return;
end if; end if;
Project := new Project_Data' Project :=
(Empty_Project new Project_Data'
(Project_Qualifier_Of (Empty_Project
(Project_Qualifier_Of
(From_Project_Node, From_Project_Node_Tree))); (From_Project_Node, From_Project_Node_Tree)));
In_Tree.Projects := new Project_List_Element'
(Project => Project, In_Tree.Projects :=
Next => In_Tree.Projects); new Project_List_Element'
(Project => Project,
Next => In_Tree.Projects);
Processed_Projects.Set (Name, Project); Processed_Projects.Set (Name, Project);
...@@ -2833,10 +2837,12 @@ package body Prj.Proc is ...@@ -2833,10 +2837,12 @@ package body Prj.Proc is
and then In_Tree.Is_Root_Tree and then In_Tree.Is_Root_Tree
then then
Initialize_And_Copy (Child_Env, Copy_From => Env); Initialize_And_Copy (Child_Env, Copy_From => Env);
else else
-- No need to initialize Child_Env, since it will not be -- No need to initialize Child_Env, since it will not be
-- used anyway by Process_Declarative_Items (only the root -- used anyway by Process_Declarative_Items (only the root
-- aggregate can modify it, and it is never read anyway). -- aggregate can modify it, and it is never read anyway).
null; null;
end if; end if;
......
...@@ -1229,7 +1229,7 @@ package body Sem_Aggr is ...@@ -1229,7 +1229,7 @@ package body Sem_Aggr is
elsif Is_Private_Type (Typ) elsif Is_Private_Type (Typ)
and then Present (Full_View (Typ)) and then Present (Full_View (Typ))
and then In_Inlined_Body and then (In_Inlined_Body or else In_Instance_Body)
and then Is_Composite_Type (Full_View (Typ)) and then Is_Composite_Type (Full_View (Typ))
then then
Resolve (N, Full_View (Typ)); Resolve (N, Full_View (Typ));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment