[Ada] Add utility function to recognize attribute 'Loop_Entry
authorYannick Moy <moy@adacore.com>
Tue, 19 May 2020 14:11:28 +0000 (16:11 +0200)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 8 Jul 2020 14:55:51 +0000 (10:55 -0400)
gcc/ada/

* sem_util.ads, sem_util.adb (Is_Attribute_Loop_Entry): New
function for GNATProve.

gcc/ada/sem_util.adb
gcc/ada/sem_util.ads

index 96563cbee3ac15898dea367e86b2116f3771d63a..8dd9e180936c50d4a956bece6ab1797f852f34ed 100644 (file)
@@ -14456,6 +14456,16 @@ package body Sem_Util is
       return Is_Atomic_Object (N) or else Is_Volatile_Full_Access_Object (N);
    end Is_Atomic_Or_VFA_Object;
 
+   -----------------------------
+   -- Is_Attribute_Loop_Entry --
+   -----------------------------
+
+   function Is_Attribute_Loop_Entry (N : Node_Id) return Boolean is
+   begin
+      return Nkind (N) = N_Attribute_Reference
+        and then Attribute_Name (N) = Name_Loop_Entry;
+   end Is_Attribute_Loop_Entry;
+
    ----------------------
    -- Is_Attribute_Old --
    ----------------------
index 2c6259b0e25719a7eb4733caa6dd58d4c02d6803..b467e26a21274d5ff52262428eebc3ddab92f326 100644 (file)
@@ -1621,6 +1621,9 @@ package Sem_Util is
    --  Determine whether arbitrary node N denotes a reference to an object
    --  which is either atomic or Volatile_Full_Access.
 
+   function Is_Attribute_Loop_Entry (N : Node_Id) return Boolean;
+   --  Determine whether node N denotes attribute 'Loop_Entry
+
    function Is_Attribute_Old (N : Node_Id) return Boolean;
    --  Determine whether node N denotes attribute 'Old