diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2021-05-24 15:27:28 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-07-08 13:34:16 +0000 |
commit | 999a2dd00d3cb8127bc1e7a2a5264d2131c92242 (patch) | |
tree | f95ee25cbbb4efd7b8d302d57583e123830b45a1 /gcc | |
parent | 2e9ef3929b0305235b968c431c8d7fec92885101 (diff) | |
download | gcc-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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sinput-l.adb | 24 |
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; |