From: Piotr Trojanek <[email protected]>

Reuse a variant of Store_String_Char routine that accepts a Character parameter
and internally calls Get_Char_Code. Code cleanup.

gcc/ada/ChangeLog:

        * exp_attr.adb (Expand_N_Attribute_Reference): Store chars without
        converting the actual parameters.
        * exp_ch11.adb (Null_String): Likewise.
        * exp_disp.adb (Make_DT): Likewise.
        * exp_util.adb (Fully_Qualified_Name_String): Likewise.
        * sem_attr.adb (Analyze_Attribute): Likewise.
        * sem_dist.adb (Full_Qualified_Name): Likewise.
        * sem_prag.adb (Process_Interface_Name, Set_Encoded_Interface_Name):
        Likewise.
        * stringt.adb (Store_String_Chars): Likewise.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/exp_attr.adb |  2 +-
 gcc/ada/exp_ch11.adb |  2 +-
 gcc/ada/exp_disp.adb |  2 +-
 gcc/ada/exp_util.adb |  4 ++--
 gcc/ada/sem_attr.adb |  8 +++-----
 gcc/ada/sem_dist.adb |  2 +-
 gcc/ada/sem_prag.adb | 16 ++++++----------
 gcc/ada/stringt.adb  |  2 +-
 8 files changed, 16 insertions(+), 22 deletions(-)

diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb
index d1b9510ce12..e5bd95d5a52 100644
--- a/gcc/ada/exp_attr.adb
+++ b/gcc/ada/exp_attr.adb
@@ -3391,7 +3391,7 @@ package body Exp_Attr is
                   if Name_Buffer (J) = '.' then
                      Store_String_Chars ("__");
                   else
-                     Store_String_Char (Get_Char_Code (Name_Buffer (J)));
+                     Store_String_Char (Name_Buffer (J));
                   end if;
                end loop;
 
diff --git a/gcc/ada/exp_ch11.adb b/gcc/ada/exp_ch11.adb
index 2210437cfe9..ff312ec7700 100644
--- a/gcc/ada/exp_ch11.adb
+++ b/gcc/ada/exp_ch11.adb
@@ -1087,7 +1087,7 @@ package body Exp_Ch11 is
       function Null_String return String_Id is
       begin
          Start_String;
-         Store_String_Char (Get_Char_Code (ASCII.NUL));
+         Store_String_Char (ASCII.NUL);
          return End_String;
       end Null_String;
 
diff --git a/gcc/ada/exp_disp.adb b/gcc/ada/exp_disp.adb
index 13fc8158e78..93bc7aef653 100644
--- a/gcc/ada/exp_disp.adb
+++ b/gcc/ada/exp_disp.adb
@@ -5345,7 +5345,7 @@ package body Exp_Disp is
                   New_Val := Old_Val;
                else
                   Start_String (Old_Val);
-                  Store_String_Char (Get_Char_Code (ASCII.NUL));
+                  Store_String_Char (ASCII.NUL);
                   New_Val := End_String;
                end if;
 
diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index 172039b3a71..842ed5998a3 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -7401,7 +7401,7 @@ package body Exp_Util is
 
          if Present (Scope (Scope (Ent))) then
             Internal_Full_Qualified_Name (Scope (Ent));
-            Store_String_Char (Get_Char_Code ('.'));
+            Store_String_Char ('.');
          end if;
 
          --  Every entity should have a name except some expanded blocks
@@ -7426,7 +7426,7 @@ package body Exp_Util is
       Internal_Full_Qualified_Name (E);
 
       if Append_NUL then
-         Store_String_Char (Get_Char_Code (ASCII.NUL));
+         Store_String_Char (ASCII.NUL);
       end if;
 
       return End_String;
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index 171dce197ea..dc6104602a3 100644
--- a/gcc/ada/sem_attr.adb
+++ b/gcc/ada/sem_attr.adb
@@ -7400,9 +7400,7 @@ package body Sem_Attr is
 
          --  Copy all characters in Full_Name
 
-         for J in 1 .. String_Length (Full_Name) loop
-            Store_String_Char (Get_String_Char (Full_Name, Pos (J)));
-         end loop;
+         Store_String_Chars (Full_Name);
 
          --  Compute CRC and convert it to string one character at a time, so
          --  as not to use Image within the compiler.
@@ -7501,14 +7499,14 @@ package body Sem_Attr is
                Start_String;
 
                if Negative then
-                  Store_String_Char (Get_Char_Code ('-'));
+                  Store_String_Char ('-');
                end if;
 
                S := Sloc (Expr);
                Src := Source_Text (Get_Source_File_Index (S));
 
                while Src (S) /= ';' and then Src (S) /= ' ' loop
-                  Store_String_Char (Get_Char_Code (Src (S)));
+                  Store_String_Char (Src (S));
                   S := S + 1;
                end loop;
 
diff --git a/gcc/ada/sem_dist.adb b/gcc/ada/sem_dist.adb
index 05a6777dc2f..c1efc696e8d 100644
--- a/gcc/ada/sem_dist.adb
+++ b/gcc/ada/sem_dist.adb
@@ -188,7 +188,7 @@ package body Sem_Dist is
 
       if Parent_Name /= No_String then
          Start_String (Parent_Name);
-         Store_String_Char (Get_Char_Code ('.'));
+         Store_String_Char ('.');
       else
          Start_String;
       end if;
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 18c3315bcee..24d61afd7e1 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -11540,7 +11540,7 @@ package body Sem_Prag is
 
          else
             Start_String;
-            Store_String_Char (Get_Char_Code ('*'));
+            Store_String_Char ('*');
             String_Val := Strval (Expr_Value_S (Link_Nam));
             Store_String_Chars (String_Val);
             Link_Nam :=
@@ -35827,15 +35827,11 @@ package body Sem_Prag is
 
       procedure Encode is
       begin
-         Store_String_Char (Get_Char_Code ('_'));
-         Store_String_Char
-           (Get_Char_Code (Hex (Integer (CC / 2 ** 12))));
-         Store_String_Char
-           (Get_Char_Code (Hex (Integer (CC / 2 ** 8 and 16#0F#))));
-         Store_String_Char
-           (Get_Char_Code (Hex (Integer (CC / 2 ** 4 and 16#0F#))));
-         Store_String_Char
-           (Get_Char_Code (Hex (Integer (CC and 16#0F#))));
+         Store_String_Char ('_');
+         Store_String_Char (Hex (Integer (CC / 2 ** 12)));
+         Store_String_Char (Hex (Integer (CC / 2 ** 8 and 16#0F#)));
+         Store_String_Char (Hex (Integer (CC / 2 ** 4 and 16#0F#)));
+         Store_String_Char (Hex (Integer (CC and 16#0F#)));
       end Encode;
 
    --  Start of processing for Set_Encoded_Interface_Name
diff --git a/gcc/ada/stringt.adb b/gcc/ada/stringt.adb
index d9853140c7b..6a9c448b8cc 100644
--- a/gcc/ada/stringt.adb
+++ b/gcc/ada/stringt.adb
@@ -214,7 +214,7 @@ package body Stringt is
    procedure Store_String_Chars (S : String) is
    begin
       for J in S'First .. S'Last loop
-         Store_String_Char (Get_Char_Code (S (J)));
+         Store_String_Char (S (J));
       end loop;
    end Store_String_Chars;
 
-- 
2.53.0

Reply via email to