+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
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)));
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);
-- 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;
-- 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;
-- 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