[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
This commit is contained in:
parent
1bb6e262cf
commit
d1c5f4243e
@ -1,3 +1,17 @@
|
||||
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>
|
||||
|
||||
* exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function.
|
||||
|
@ -7845,7 +7845,6 @@ package body Exp_Ch6 is
|
||||
function Needs_BIP_Alloc_Form (Func_Id : Entity_Id) return Boolean is
|
||||
pragma Assert (Is_Build_In_Place_Function (Func_Id));
|
||||
Func_Typ : constant Entity_Id := Underlying_Type (Etype (Func_Id));
|
||||
|
||||
begin
|
||||
return not Is_Constrained (Func_Typ) or else Is_Tagged_Type (Func_Typ);
|
||||
end Needs_BIP_Alloc_Form;
|
||||
|
@ -342,11 +342,12 @@ package body Inline is
|
||||
null;
|
||||
|
||||
-- Do not inline the package if the subprogram is an init. proc
|
||||
-- because in that case the body appears in the same unit that
|
||||
-- declares the type, which will be compiled in any case.
|
||||
-- or other internally generated subprogram, because in that
|
||||
-- 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)
|
||||
and then not Is_Init_Proc (E)
|
||||
and then Comes_From_Source (E)
|
||||
then
|
||||
Set_Is_Inlined (Pack);
|
||||
Inlined_Bodies.Increment_Last;
|
||||
|
@ -836,6 +836,7 @@ package body Prj.Env is
|
||||
or else Source.Unit /= No_Unit_Index)
|
||||
then
|
||||
if Source.Unit /= No_Unit_Index then
|
||||
|
||||
-- Put the encoded unit name in the name buffer
|
||||
|
||||
declare
|
||||
@ -844,11 +845,9 @@ package body Prj.Env is
|
||||
|
||||
begin
|
||||
Name_Len := 0;
|
||||
|
||||
for J in Uname'Range loop
|
||||
if Uname (J) in Upper_Half_Character then
|
||||
Store_Encoded_Character (Get_Char_Code (Uname (J)));
|
||||
|
||||
else
|
||||
Add_Char_To_Name_Buffer (Uname (J));
|
||||
end if;
|
||||
@ -879,8 +878,7 @@ package body Prj.Env is
|
||||
end case;
|
||||
|
||||
if Suffix /= No_File then
|
||||
Add_Str_To_Name_Buffer
|
||||
(Get_Name_String (Suffix));
|
||||
Add_Str_To_Name_Buffer (Get_Name_String (Suffix));
|
||||
end if;
|
||||
end if;
|
||||
|
||||
@ -907,6 +905,8 @@ package body Prj.Env is
|
||||
procedure For_Every_Imported_Project is new
|
||||
For_Every_Project_Imported (State => Integer, Action => Process);
|
||||
|
||||
-- Local variables
|
||||
|
||||
Dummy : Integer := 0;
|
||||
|
||||
-- Start of processing for Create_Mapping_File
|
||||
|
@ -2765,6 +2765,7 @@ package body Prj.Proc is
|
||||
Project := Processed_Projects.Get (Name);
|
||||
|
||||
if Project /= No_Project then
|
||||
|
||||
-- Make sure that, when a project is extended, the project id
|
||||
-- of the project extending it is recorded in its data, even
|
||||
-- when it has already been processed as an imported project.
|
||||
@ -2777,11 +2778,14 @@ package body Prj.Proc is
|
||||
return;
|
||||
end if;
|
||||
|
||||
Project := new Project_Data'
|
||||
Project :=
|
||||
new Project_Data'
|
||||
(Empty_Project
|
||||
(Project_Qualifier_Of
|
||||
(From_Project_Node, From_Project_Node_Tree)));
|
||||
In_Tree.Projects := new Project_List_Element'
|
||||
|
||||
In_Tree.Projects :=
|
||||
new Project_List_Element'
|
||||
(Project => Project,
|
||||
Next => In_Tree.Projects);
|
||||
|
||||
@ -2833,10 +2837,12 @@ package body Prj.Proc is
|
||||
and then In_Tree.Is_Root_Tree
|
||||
then
|
||||
Initialize_And_Copy (Child_Env, Copy_From => Env);
|
||||
|
||||
else
|
||||
-- No need to initialize Child_Env, since it will not be
|
||||
-- used anyway by Process_Declarative_Items (only the root
|
||||
-- aggregate can modify it, and it is never read anyway).
|
||||
|
||||
null;
|
||||
end if;
|
||||
|
||||
|
@ -1229,7 +1229,7 @@ package body Sem_Aggr is
|
||||
|
||||
elsif Is_Private_Type (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))
|
||||
then
|
||||
Resolve (N, Full_View (Typ));
|
||||
|
Loading…
x
Reference in New Issue
Block a user