[Ada] Refactor repeated calls to Etype in aggregate expansion
authorPiotr Trojanek <trojanek@adacore.com>
Thu, 6 Aug 2020 20:19:18 +0000 (22:19 +0200)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 21 Oct 2020 07:22:48 +0000 (03:22 -0400)
gcc/ada/

* exp_aggr.adb (Expand_N_Aggregate): Refactor repeated calls to
Etype (N).
(Build_Array_Aggr_Code): Fix whitespace.

gcc/ada/exp_aggr.adb

index 7bdd11bf3a0ba4dc38648eeffc01bf98484aa213..bbb4f889454796a3822cf8d69dd4da096cc85aab 100644 (file)
@@ -2334,7 +2334,7 @@ package body Exp_Aggr is
             Sort_Case_Table (Table);
          end if;
 
-         --  STEP 1 (b):  take care of the whole set of discrete choices
+         --  STEP 1 (b): take care of the whole set of discrete choices
 
          for J in 1 .. Nb_Choices loop
             Low  := Table (J).Choice_Lo;
@@ -6755,15 +6755,16 @@ package body Exp_Aggr is
    ------------------------
 
    procedure Expand_N_Aggregate (N : Node_Id) is
+      T : constant Entity_Id := Etype (N);
    begin
       --  Record aggregate case
 
-      if Is_Record_Type (Etype (N))
-        and then not Is_Private_Type (Etype (N))
+      if Is_Record_Type (T)
+        and then not Is_Private_Type (T)
       then
          Expand_Record_Aggregate (N);
 
-      elsif Has_Aspect (Etype (N), Aspect_Aggregate) then
+      elsif Has_Aspect (T, Aspect_Aggregate) then
          Expand_Container_Aggregate (N);
 
       --  Array aggregate case
@@ -6811,11 +6812,10 @@ package body Exp_Aggr is
                  and then No (Expressions (N))
                then
                   declare
-                     T  : constant Entity_Id := Etype (N);
-                     X  : constant Node_Id   := First_Index (T);
-                     EC : constant Node_Id   := Expression (CA);
-                     CV : constant Uint      := Char_Literal_Value (EC);
-                     CC : constant Int       := UI_To_Int (CV);
+                     X  : constant Node_Id := First_Index (T);
+                     EC : constant Node_Id := Expression (CA);
+                     CV : constant Uint    := Char_Literal_Value (EC);
+                     CC : constant Int     := UI_To_Int (CV);
 
                   begin
                      if Nkind (X) = N_Range