Commit e657b693 by Arnaud Charlet

[multiple changes]

2009-07-28  Arnaud Charlet  <charlet@adacore.com>

	* frontend.adb: Minor reformatting.
	(Frontend): Only call Check_SCIL_Nodes if assertions are enabled,
	for efficiency.

2009-07-28  Bob Duff  <duff@adacore.com>

	* exp_attr.adb (Expand_Access_To_Protected_Op): Use 'Access instead of
	'Address to get a pointer to the protected body wrapper.

From-SVN: r150150
parent 327503f1
2009-07-28 Arnaud Charlet <charlet@adacore.com>
* frontend.adb: Minor reformatting.
(Frontend): Only call Check_SCIL_Nodes if assertions are enabled,
for efficiency.
2009-07-28 Bob Duff <duff@adacore.com>
* exp_attr.adb (Expand_Access_To_Protected_Op): Use 'Access instead of
'Address to get a pointer to the protected body wrapper.
2009-07-28 Javier Miranda <miranda@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Disable generation of SCIL
......
......@@ -235,6 +235,7 @@ package body Exp_Attr is
Agg : Node_Id;
Btyp : constant Entity_Id := Base_Type (Typ);
Sub : Entity_Id;
Sub_Ref : Node_Id;
E_T : constant Entity_Id := Equivalent_Type (Btyp);
Acc : constant Entity_Id :=
Etype (Next_Component (First_Component (E_T)));
......@@ -355,15 +356,23 @@ package body Exp_Attr is
Attribute_Name => Name_Address);
end if;
Sub_Ref :=
Make_Attribute_Reference (Loc,
Prefix => Sub,
Attribute_Name => Name_Access);
-- We set the type of the access reference to the already generated
-- access_to_subprogram type, and declare the reference analyzed, to
-- prevent further expansion when the enclosing aggregate is analyzed.
Set_Etype (Sub_Ref, Acc);
Set_Analyzed (Sub_Ref);
Agg :=
Make_Aggregate (Loc,
Expressions =>
New_List (
Obj_Ref,
Unchecked_Convert_To (Acc,
Make_Attribute_Reference (Loc,
Prefix => Sub,
Attribute_Name => Name_Address))));
Obj_Ref, Sub_Ref));
Rewrite (N, Agg);
......
......@@ -342,7 +342,7 @@ begin
-- incorporate subunits at a lower level.
if Operating_Mode = Generate_Code
and then Nkind (Unit (Cunit (Main_Unit))) = N_Subunit
and then Nkind (Unit (Cunit (Main_Unit))) = N_Subunit
then
Operating_Mode := Check_Semantics;
end if;
......@@ -355,8 +355,8 @@ begin
-- Cleanup processing after completing main analysis
if Operating_Mode = Generate_Code
or else (Operating_Mode = Check_Semantics
and then ASIS_Mode)
or else (Operating_Mode = Check_Semantics
and then ASIS_Mode)
then
Instantiate_Bodies;
end if;
......@@ -404,7 +404,8 @@ begin
-- dispatching calls reference subprogram calls.
if Generate_SCIL then
Check_SCIL_Nodes (Cunit (Main_Unit));
pragma Debug (Check_SCIL_Nodes (Cunit (Main_Unit)));
null;
end if;
-- Dump the source now. Note that we do this as soon as the analysis
......
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