gcc/ada/
* exp_attr.adb (Expand_Attribute): Set
Stores_Attribute_Old_Prefix to generated renamings of 'Old
constants for later use in generating finalization routines.
* exp_ch7.adb (Build_Finalizer): Minor reformatting. Use "or
else" operators.
Name =>
Convert_To (Typ, New_Occurrence_Of (CW_Temp, Loc))));
+ Set_Stores_Attribute_Old_Prefix (CW_Temp);
+
-- Non-tagged case
else
---------------------
procedure Build_Finalizer
- (N : Node_Id;
- Clean_Stmts : List_Id;
- Mark_Id : Entity_Id;
- Top_Decls : List_Id;
- Defer_Abort : Boolean;
- Fin_Id : out Entity_Id)
+ (N : Node_Id;
+ Clean_Stmts : List_Id;
+ Mark_Id : Entity_Id;
+ Top_Decls : List_Id;
+ Defer_Abort : Boolean;
+ Fin_Id : out Entity_Id)
is
Acts_As_Clean : constant Boolean :=
Present (Mark_Id)
Decl := Last_Non_Pragma (Decls);
while Present (Decl) loop
-
-- Library-level tagged types
if Nkind (Decl) = N_Full_Type_Declaration then
-- Step 3: Finalizer creation
- if Acts_As_Clean or Has_Ctrl_Objs or Has_Tagged_Types then
+ if Acts_As_Clean or else Has_Ctrl_Objs or else Has_Tagged_Types then
Create_Finalizer;
end if;
end Build_Finalizer;