[Ada] Locally enabled invariants are ignored

Arnaud Charlet charlet@adacore.com
Thu Apr 25 10:31:00 GMT 2013


This patch moves routine Find_Pragma from sem_util to einfo. No change in
behavior, no test.

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

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.ads, einfo.adb: Remove with and use clauses for Namet.
	(Find_Pragma): New routine.
	* sem_util.ads, sem_util.adb (Find_Pragma): Moved to einfo.

-------------- next part --------------
Index: einfo.adb
===================================================================
--- einfo.adb	(revision 198282)
+++ einfo.adb	(working copy)
@@ -33,7 +33,6 @@
 --  Turn off subprogram ordering, not used for this unit
 
 with Atree;   use Atree;
-with Namet;   use Namet;
 with Nlists;  use Nlists;
 with Output;  use Output;
 with Sinfo;   use Sinfo;
@@ -6102,6 +6101,26 @@
       return Etype (Discrete_Subtype_Definition (Parent (Id)));
    end Entry_Index_Type;
 
+   -----------------
+   -- Find_Pragma --
+   -----------------
+
+   function Find_Pragma (Id : Entity_Id; Name : Name_Id) return Node_Id is
+      Item : Node_Id;
+
+   begin
+      Item := First_Rep_Item (Id);
+      while Present (Item) loop
+         if Nkind (Item) = N_Pragma and then Pragma_Name (Item) = Name then
+            return Item;
+         end if;
+
+         Item := Next_Rep_Item (Item);
+      end loop;
+
+      return Empty;
+   end Find_Pragma;
+
    ---------------------
    -- First_Component --
    ---------------------
Index: einfo.ads
===================================================================
--- einfo.ads	(revision 198275)
+++ einfo.ads	(working copy)
@@ -29,6 +29,7 @@
 --                                                                          --
 ------------------------------------------------------------------------------
 
+with Namet;  use Namet;
 with Snames; use Snames;
 with Types;  use Types;
 with Uintp;  use Uintp;
@@ -7351,6 +7352,11 @@
    --  expression is deferred to the freeze point. For further details see
    --  Sem_Ch13.Analyze_Aspect_Specifications.
 
+   function Find_Pragma (Id : Entity_Id; Name : Name_Id) return Node_Id;
+   --  Given entity Id and pragma name Name, attempt to find the corresponding
+   --  pragma in Id's chain of representation items. The function returns Empty
+   --  if no such pragma has been found.
+
    function Get_Attribute_Definition_Clause
      (E  : Entity_Id;
       Id : Attribute_Id) return Node_Id;
Index: sem_util.adb
===================================================================
--- sem_util.adb	(revision 198282)
+++ sem_util.adb	(working copy)
@@ -4882,26 +4882,6 @@
       end if;
    end Find_Parameter_Type;
 
-   -----------------
-   -- Find_Pragma --
-   -----------------
-
-   function Find_Pragma (Id : Entity_Id; Name : Name_Id) return Node_Id is
-      Item : Node_Id;
-
-   begin
-      Item := First_Rep_Item (Id);
-      while Present (Item) loop
-         if Nkind (Item) = N_Pragma and then Pragma_Name (Item) = Name then
-            return Item;
-         end if;
-
-         Item := Next_Rep_Item (Item);
-      end loop;
-
-      return Empty;
-   end Find_Pragma;
-
    -----------------------------
    -- Find_Static_Alternative --
    -----------------------------
Index: sem_util.ads
===================================================================
--- sem_util.ads	(revision 198282)
+++ sem_util.ads	(working copy)
@@ -494,11 +494,6 @@
    --  Return the type of formal parameter Param as determined by its
    --  specification.
 
-   function Find_Pragma (Id : Entity_Id; Name : Name_Id) return Node_Id;
-   --  Given entity Id and pragma name Name, attempt to find the corresponding
-   --  pragma in Id's chain of representation items. The function returns Empty
-   --  if no such pragma has been found.
-
    function Find_Static_Alternative (N : Node_Id) return Node_Id;
    --  N is a case statement whose expression is a compile-time value.
    --  Determine the alternative chosen, so that the code of non-selected


More information about the Gcc-patches mailing list