[Ada] Minor refactoring
authorJustin Squirek <squirek@adacore.com>
Mon, 6 Apr 2020 11:53:12 +0000 (07:53 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 8 Jul 2020 14:55:50 +0000 (10:55 -0400)
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.

gcc/ada/exp_attr.adb
gcc/ada/exp_ch7.adb

index f21ec9e91173e347be42a867ae15f4ec57867d3d..14ffe8ec42fad82afe684d40832592feba275f69 100644 (file)
@@ -4706,6 +4706,8 @@ package body Exp_Attr is
                 Name                =>
                   Convert_To (Typ, New_Occurrence_Of (CW_Temp, Loc))));
 
+            Set_Stores_Attribute_Old_Prefix (CW_Temp);
+
          --  Non-tagged case
 
          else
index 6dfecac1f70f12ec9544b3b51d21fd8422f781e8..bd7a1e4bdedf8cf3401594238a281c770b6d1759 100644 (file)
@@ -1376,12 +1376,12 @@ package body Exp_Ch7 is
    ---------------------
 
    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)
@@ -2155,7 +2155,6 @@ package body Exp_Ch7 is
 
          Decl := Last_Non_Pragma (Decls);
          while Present (Decl) loop
-
             --  Library-level tagged types
 
             if Nkind (Decl) = N_Full_Type_Declaration then
@@ -3510,7 +3509,7 @@ package body Exp_Ch7 is
 
       --  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;