aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2021-05-24 15:27:28 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2021-07-08 13:34:16 +0000
commit999a2dd00d3cb8127bc1e7a2a5264d2131c92242 (patch)
treef95ee25cbbb4efd7b8d302d57583e123830b45a1
parent2e9ef3929b0305235b968c431c8d7fec92885101 (diff)
downloadgcc-999a2dd00d3cb8127bc1e7a2a5264d2131c92242.zip
gcc-999a2dd00d3cb8127bc1e7a2a5264d2131c92242.tar.gz
gcc-999a2dd00d3cb8127bc1e7a2a5264d2131c92242.tar.bz2
[Ada] Simplify string manipulation related to preprocessing
gcc/ada/ * sinput-l.adb (Load_File): Simplify foreword manipulation with concatenation; similar for filename with preprocessed output.
-rw-r--r--gcc/ada/sinput-l.adb24
1 files changed, 7 insertions, 17 deletions
diff --git a/gcc/ada/sinput-l.adb b/gcc/ada/sinput-l.adb
index 102f363..2d5efb0 100644
--- a/gcc/ada/sinput-l.adb
+++ b/gcc/ada/sinput-l.adb
@@ -551,19 +551,10 @@ package body Sinput.L is
Set_Source_File_Index_Table (X);
if Opt.List_Preprocessing_Symbols then
- Get_Name_String (N);
-
declare
- Foreword : String (1 .. Foreword_Start'Length +
- Name_Len + Foreword_End'Length);
-
+ Foreword : constant String :=
+ Foreword_Start & Get_Name_String (N) & Foreword_End;
begin
- Foreword (1 .. Foreword_Start'Length) := Foreword_Start;
- Foreword (Foreword_Start'Length + 1 ..
- Foreword_Start'Length + Name_Len) :=
- Name_Buffer (1 .. Name_Len);
- Foreword (Foreword'Last - Foreword_End'Length + 1 ..
- Foreword'Last) := Foreword_End;
Prep.List_Symbols (Foreword);
end;
end if;
@@ -654,14 +645,13 @@ package body Sinput.L is
NB : Integer;
Status : Boolean;
- begin
- Get_Name_String (N);
- Add_Str_To_Name_Buffer (Prep_Suffix);
+ Prep_Filename : constant String :=
+ Get_Name_String (N) & Prep_Suffix;
- Delete_File (Name_Buffer (1 .. Name_Len), Status);
+ begin
+ Delete_File (Prep_Filename, Status);
- FD :=
- Create_New_File (Name_Buffer (1 .. Name_Len), Text);
+ FD := Create_New_File (Prep_Filename, Text);
Status := FD /= Invalid_FD;