with Exp_Ch3; use Exp_Ch3;
with Exp_Ch6; use Exp_Ch6;
with Exp_Ch9; use Exp_Ch9;
+with Exp_Dist; use Exp_Dist;
with Exp_Imgv; use Exp_Imgv;
with Exp_Pakd; use Exp_Pakd;
with Exp_Strm; use Exp_Strm;
Expand_Fpt_Attribute_R (N);
--------------
+ -- From_Any --
+ --------------
+
+ when Attribute_From_Any => From_Any : declare
+ P_Type : constant Entity_Id := Etype (Pref);
+ Decls : constant List_Id := New_List;
+ begin
+ Rewrite (N,
+ Build_From_Any_Call (P_Type,
+ Relocate_Node (First (Exprs)),
+ Decls));
+ Insert_Actions (N, Decls);
+ Analyze_And_Resolve (N, P_Type);
+ end From_Any;
+
+ --------------
-- Identity --
--------------
Relocate_Node (First (Exprs))));
Analyze_And_Resolve (N, RTE (RE_Address));
+ ------------
+ -- To_Any --
+ ------------
+
+ when Attribute_To_Any => To_Any : declare
+ P_Type : constant Entity_Id := Etype (Pref);
+ Decls : constant List_Id := New_List;
+ begin
+ Rewrite (N,
+ Build_To_Any_Call
+ (Convert_To (P_Type,
+ Relocate_Node (First (Exprs))), Decls));
+ Insert_Actions (N, Decls);
+ Analyze_And_Resolve (N, RTE (RE_Any));
+ end To_Any;
+
----------------
-- Truncation --
----------------
Expand_Fpt_Attribute_R (N);
end if;
+ --------------
+ -- TypeCode --
+ --------------
+
+ when Attribute_TypeCode => TypeCode : declare
+ P_Type : constant Entity_Id := Etype (Pref);
+ Decls : constant List_Id := New_List;
+ begin
+ Rewrite (N, Build_TypeCode_Call (Loc, P_Type, Decls));
+ Insert_Actions (N, Decls);
+ Analyze_And_Resolve (N, RTE (RE_TypeCode));
+ end TypeCode;
+
-----------------------
-- Unbiased_Rounding --
-----------------------