This is an internal change to create two new Boolean Name_Table
info fields. No external effect, no test.

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

2015-01-06  Robert Dewar  <de...@adacore.com>

        * exp_util.adb: Change name Name_Table_Boolean to
        Name_Table_Boolean1.
        * namet.adb: Change name Name_Table_Boolean to Name_Table_Boolean1
        Introduce Name_Table_Boolean2/3.
        * namet.ads: Change name Name_Table_Boolean to Name_Table_Boolean1
        Introduce Name_Table_Boolean2/3.
        * par-ch13.adb: Change name Name_Table_Boolean to
        Name_Table_Boolean1.

Index: exp_util.adb
===================================================================
--- exp_util.adb        (revision 219222)
+++ exp_util.adb        (working copy)
@@ -2963,7 +2963,7 @@
       --  If parser detected no address clause for the identifier in question,
       --  then the answer is a quick NO, without the need for a search.
 
-      if not Get_Name_Table_Boolean (Chars (Id)) then
+      if not Get_Name_Table_Boolean1 (Chars (Id)) then
          return Empty;
       end if;
 
Index: par-ch13.adb
===================================================================
--- par-ch13.adb        (revision 219191)
+++ par-ch13.adb        (working copy)
@@ -741,7 +741,7 @@
             if Attr_Name = Name_Address
               and then Nkind (Prefix_Node) = N_Identifier
             then
-               Set_Name_Table_Boolean (Chars (Prefix_Node), True);
+               Set_Name_Table_Boolean1 (Chars (Prefix_Node), True);
             end if;
          end loop;
 
@@ -771,7 +771,7 @@
             --  Mark occurrence of address clause (used to optimize performance
             --  of Exp_Util.Following_Address_Clause).
 
-            Set_Name_Table_Boolean (Chars (Identifier_Node), True);
+            Set_Name_Table_Boolean1 (Chars (Identifier_Node), True);
 
          --  RECORD follows USE (Record Representation Clause)
 
Index: namet.adb
===================================================================
--- namet.adb   (revision 219230)
+++ namet.adb   (working copy)
@@ -705,16 +705,36 @@
       end loop;
    end Get_Name_String_And_Append;
 
-   ----------------------------
-   -- Get_Name_Table_Boolean --
-   ----------------------------
+   -----------------------------
+   -- Get_Name_Table_Boolean1 --
+   -----------------------------
 
-   function Get_Name_Table_Boolean (Id : Name_Id) return Boolean is
+   function Get_Name_Table_Boolean1 (Id : Name_Id) return Boolean is
    begin
       pragma Assert (Id in Name_Entries.First .. Name_Entries.Last);
-      return Name_Entries.Table (Id).Boolean_Info;
-   end Get_Name_Table_Boolean;
+      return Name_Entries.Table (Id).Boolean1_Info;
+   end Get_Name_Table_Boolean1;
 
+   -----------------------------
+   -- Get_Name_Table_Boolean2 --
+   -----------------------------
+
+   function Get_Name_Table_Boolean2 (Id : Name_Id) return Boolean is
+   begin
+      pragma Assert (Id in Name_Entries.First .. Name_Entries.Last);
+      return Name_Entries.Table (Id).Boolean2_Info;
+   end Get_Name_Table_Boolean2;
+
+   -----------------------------
+   -- Get_Name_Table_Boolean3 --
+   -----------------------------
+
+   function Get_Name_Table_Boolean3 (Id : Name_Id) return Boolean is
+   begin
+      pragma Assert (Id in Name_Entries.First .. Name_Entries.Last);
+      return Name_Entries.Table (Id).Boolean3_Info;
+   end Get_Name_Table_Boolean3;
+
    -------------------------
    -- Get_Name_Table_Byte --
    -------------------------
@@ -933,7 +953,9 @@
           Name_Len              => Short (Name_Len),
           Byte_Info             => 0,
           Int_Info              => 0,
-          Boolean_Info          => False,
+          Boolean1_Info         => False,
+          Boolean2_Info         => False,
+          Boolean3_Info         => False,
           Name_Has_No_Encodings => False,
           Hash_Link             => No_Name));
 
@@ -1037,7 +1059,9 @@
              Name_Has_No_Encodings => False,
              Int_Info              => 0,
              Byte_Info             => 0,
-             Boolean_Info          => False));
+             Boolean1_Info         => False,
+             Boolean2_Info         => False,
+             Boolean3_Info         => False));
 
          --  Set corresponding string entry in the Name_Chars table
 
@@ -1262,7 +1286,9 @@
              Name_Len              => 1,
              Byte_Info             => 0,
              Int_Info              => 0,
-             Boolean_Info          => False,
+             Boolean1_Info         => False,
+             Boolean2_Info         => False,
+             Boolean3_Info         => False,
              Name_Has_No_Encodings => True,
              Hash_Link             => No_Name));
 
@@ -1300,16 +1326,36 @@
       Store_Encoded_Character (C);
    end Set_Character_Literal_Name;
 
-   ----------------------------
-   -- Set_Name_Table_Boolean --
-   ----------------------------
+   -----------------------------
+   -- Set_Name_Table_Boolean1 --
+   -----------------------------
 
-   procedure Set_Name_Table_Boolean (Id : Name_Id; Val : Boolean) is
+   procedure Set_Name_Table_Boolean1 (Id : Name_Id; Val : Boolean) is
    begin
       pragma Assert (Id in Name_Entries.First .. Name_Entries.Last);
-      Name_Entries.Table (Id).Boolean_Info := Val;
-   end Set_Name_Table_Boolean;
+      Name_Entries.Table (Id).Boolean1_Info := Val;
+   end Set_Name_Table_Boolean1;
 
+   -----------------------------
+   -- Set_Name_Table_Boolean2 --
+   -----------------------------
+
+   procedure Set_Name_Table_Boolean2 (Id : Name_Id; Val : Boolean) is
+   begin
+      pragma Assert (Id in Name_Entries.First .. Name_Entries.Last);
+      Name_Entries.Table (Id).Boolean2_Info := Val;
+   end Set_Name_Table_Boolean2;
+
+   -----------------------------
+   -- Set_Name_Table_Boolean3 --
+   -----------------------------
+
+   procedure Set_Name_Table_Boolean3 (Id : Name_Id; Val : Boolean) is
+   begin
+      pragma Assert (Id in Name_Entries.First .. Name_Entries.Last);
+      Name_Entries.Table (Id).Boolean3_Info := Val;
+   end Set_Name_Table_Boolean3;
+
    -------------------------
    -- Set_Name_Table_Byte --
    -------------------------
Index: namet.ads
===================================================================
--- namet.ads   (revision 219230)
+++ namet.ads   (working copy)
@@ -115,7 +115,7 @@
 --  character lower case letters in the range a-z, and these names are created
 --  and initialized by the Initialize procedure.
 
---  Three values, one of type Int, one of type Byte, and one of type Boolean,
+--  Five values, one of type Int, one of type Byte, and three of type Boolean,
 --  are stored with each names table entry and subprograms are provided for
 --  setting and retrieving these associated values. The usage of these values
 --  is up to the client:
@@ -128,9 +128,11 @@
 --      The Byte field is used to hold the Token_Type value for reserved words
 --      (see Sem for details).
 
---      The Boolean field is used to mark address clauses to optimize the
+--      The Boolean1 field is used to mark address clauses to optimize the
 --      performance of the Exp_Util.Following_Address_Clause function.
 
+--      The Boolean2/Boolean3 fields are not used
+
 --    In the binder, we have the following uses:
 
 --      The Int field is used in various ways depending on the name involved,
@@ -367,8 +369,10 @@
    pragma Inline (Get_Name_Table_Int);
    --  Fetches the Int value associated with the given name
 
-   function Get_Name_Table_Boolean (Id : Name_Id) return Boolean;
-   --  Fetches the Boolean value associated with the given name
+   function Get_Name_Table_Boolean1 (Id : Name_Id) return Boolean;
+   function Get_Name_Table_Boolean2 (Id : Name_Id) return Boolean;
+   function Get_Name_Table_Boolean3 (Id : Name_Id) return Boolean;
+   --  Fetches the Boolean values associated with the given name
 
    function Is_Operator_Name (Id : Name_Id) return Boolean;
    --  Returns True if name given is of the form of an operator (that
@@ -504,7 +508,9 @@
    pragma Inline (Set_Name_Table_Byte);
    --  Sets the Byte value associated with the given name
 
-   procedure Set_Name_Table_Boolean (Id : Name_Id; Val : Boolean);
+   procedure Set_Name_Table_Boolean1 (Id : Name_Id; Val : Boolean);
+   procedure Set_Name_Table_Boolean2 (Id : Name_Id; Val : Boolean);
+   procedure Set_Name_Table_Boolean3 (Id : Name_Id; Val : Boolean);
    --  Sets the Boolean value associated with the given name
 
    procedure Store_Encoded_Character (C : Char_Code);
@@ -644,8 +650,10 @@
       Byte_Info : Byte;
       --  Byte value associated with this name
 
-      Boolean_Info : Boolean;
-      --  Boolean value associated with the name
+      Boolean1_Info : Boolean;
+      Boolean2_Info : Boolean;
+      Boolean3_Info : Boolean;
+      --  Boolean values associated with the name
 
       Name_Has_No_Encodings : Boolean;
       --  This flag is set True if the name entry is known not to contain any
@@ -665,8 +673,10 @@
       Name_Chars_Index      at  0 range 0 .. 31;
       Name_Len              at  4 range 0 .. 15;
       Byte_Info             at  6 range 0 .. 7;
-      Boolean_Info          at  7 range 0 .. 0;
-      Name_Has_No_Encodings at  7 range 1 .. 7;
+      Boolean1_Info         at  7 range 0 .. 0;
+      Boolean2_Info         at  7 range 1 .. 1;
+      Boolean3_Info         at  7 range 2 .. 2;
+      Name_Has_No_Encodings at  7 range 3 .. 7;
       Hash_Link             at  8 range 0 .. 31;
       Int_Info              at 12 range 0 .. 31;
    end record;

Reply via email to