diff mbox series

[Ada] Remove duplicates of empty strings

Message ID 20220106171257.GA2921507@adacore.com
State New
Headers show
Series [Ada] Remove duplicates of empty strings | expand

Commit Message

Pierre-Marie de Rodat Jan. 6, 2022, 5:12 p.m. UTC
In package Stringt we already have a Null_String_Id, which represents a
null string with length zero. There is no need to duplicate it in other
packages.

Cleanup originating from enabling expansion of dispatching wrappers for
GNATprove; semantics is unaffected.

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

gcc/ada/

	* par-ch4.adb (P_Simple_Expression): Reuse Null_String_Id.
	* prep.adb (Parse_Def_File): Likewise; remove Empty_String.
diff mbox series

Patch

diff --git a/gcc/ada/par-ch4.adb b/gcc/ada/par-ch4.adb
--- a/gcc/ada/par-ch4.adb
+++ b/gcc/ada/par-ch4.adb
@@ -2471,9 +2471,6 @@  package body Ch4 is
               and then Num_Concats >= Num_Concats_Threshold
             then
                declare
-                  Empty_String_Val : String_Id;
-                  --  String_Id for ""
-
                   Strlit_Concat_Val : String_Id;
                   --  Contains the folded value (which will be correct if the
                   --  "&" operators are the predefined ones).
@@ -2509,11 +2506,9 @@  package body Ch4 is
                   --  Create new folded node, and rewrite result with a concat-
                   --  enation of an empty string literal and the folded node.
 
-                  Start_String;
-                  Empty_String_Val := End_String;
                   New_Node :=
                     Make_Op_Concat (Loc,
-                      Make_String_Literal (Loc, Empty_String_Val),
+                      Make_String_Literal (Loc, Null_String_Id),
                       Make_String_Literal (Loc, Strlit_Concat_Val,
                         Is_Folded_In_Parser => True));
                   Rewrite (Node1, New_Node);


diff --git a/gcc/ada/prep.adb b/gcc/ada/prep.adb
--- a/gcc/ada/prep.adb
+++ b/gcc/ada/prep.adb
@@ -114,9 +114,6 @@  package body Prep is
    --  Used to avoid repetition of the part of the initialisation that needs
    --  to be done only once.
 
-   Empty_String : String_Id;
-   --  "", as a string_id
-
    String_False : String_Id;
    --  "false", as a string_id
 
@@ -809,9 +806,6 @@  package body Prep is
          Store_String_Chars ("True");
          True_Value.Value := End_String;
 
-         Start_String;
-         Empty_String := End_String;
-
          Start_String;
          Store_String_Chars ("False");
          String_False := End_String;
@@ -1072,7 +1066,7 @@  package body Prep is
                         Original            => Original_Name,
                         On_The_Command_Line => False,
                         Is_A_String         => False,
-                        Value               => Empty_String);
+                        Value               => Null_String_Id);
 
             else
                Value_Start := Token_Ptr;