public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Ada] Add_To_Result routine (internal cleanup)
@ 2011-08-02 10:36 Arnaud Charlet
  0 siblings, 0 replies; only message in thread
From: Arnaud Charlet @ 2011-08-02 10:36 UTC (permalink / raw)
  To: gcc-patches; +Cc: Robert Dewar

[-- Attachment #1: Type: text/plain, Size: 225 bytes --]

This is an internal clean up to factor some repeated coce,
no external effect.

Tested on x86_64-pc-linux-gnu, committed on trunk

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Add_To_Result): New procedure.


[-- Attachment #2: difs --]
[-- Type: text/plain, Size: 3329 bytes --]

Index: freeze.adb
===================================================================
--- freeze.adb	(revision 177122)
+++ freeze.adb	(working copy)
@@ -1502,14 +1502,19 @@
       Test_E : Entity_Id := E;
       Comp   : Entity_Id;
       F_Node : Node_Id;
-      Result : List_Id;
       Indx   : Node_Id;
       Formal : Entity_Id;
       Atype  : Entity_Id;
 
+      Result : List_Id := No_List;
+      --  List of freezing actions, left at No_List if none
+
       Has_Default_Initialization : Boolean := False;
       --  This flag gets set to true for a variable with default initialization
 
+      procedure Add_To_Result (N : Node_Id);
+      --  N is a freezing action to be appended to the Result
+
       procedure Check_Current_Instance (Comp_Decl : Node_Id);
       --  Check that an Access or Unchecked_Access attribute with a prefix
       --  which is the current instance type can only be applied when the type
@@ -1528,6 +1533,19 @@
       --  Freeze each component, handle some representation clauses, and freeze
       --  primitive operations if this is a tagged type.
 
+      -------------------
+      -- Add_To_Result --
+      -------------------
+
+      procedure Add_To_Result (N : Node_Id) is
+      begin
+         if No (Result) then
+            Result := New_List (N);
+         else
+            Append (N, Result);
+         end if;
+      end Add_To_Result;
+
       ----------------------------
       -- After_Last_Declaration --
       ----------------------------
@@ -1769,12 +1787,7 @@
                then
                   IR := Make_Itype_Reference (Sloc (Comp));
                   Set_Itype (IR, Desig);
-
-                  if No (Result) then
-                     Result := New_List (IR);
-                  else
-                     Append (IR, Result);
-                  end if;
+                  Add_To_Result (IR);
                end if;
 
             elsif Ekind (Typ) = E_Anonymous_Access_Subprogram_Type
@@ -2421,7 +2434,6 @@
 
       --  Here to freeze the entity
 
-      Result := No_List;
       Set_Is_Frozen (E);
 
       --  Case of entity being frozen is other than a type
@@ -3602,11 +3614,7 @@
 
                begin
                   Set_Itype (Ref, E);
-                  if No (Result) then
-                     Result := New_List (Ref);
-                  else
-                     Append (Ref, Result);
-                  end if;
+                  Add_To_Result (Ref);
                end;
             end if;
 
@@ -4052,13 +4060,8 @@
          end if;
 
          Set_Entity (F_Node, E);
+         Add_To_Result (F_Node);
 
-         if Result = No_List then
-            Result := New_List (F_Node);
-         else
-            Append (F_Node, Result);
-         end if;
-
          --  A final pass over record types with discriminants. If the type
          --  has an incomplete declaration, there may be constrained access
          --  subtypes declared elsewhere, which do not depend on the discrimi-
@@ -4135,6 +4138,8 @@
          --  subprogram in main unit, generate descriptor if we are in
          --  Propagate_Exceptions mode.
 
+         --  This is very odd code, it makes a null result, why ???
+
          elsif Propagate_Exceptions
            and then Is_Imported (E)
            and then not Is_Intrinsic_Subprogram (E)

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-08-02 10:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-02 10:36 [Ada] Add_To_Result routine (internal cleanup) Arnaud Charlet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).