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;