aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorRonan Desplanques <desplanques@adacore.com>2024-05-02 09:52:34 +0200
committerMarc Poulhiès <dkm@gcc.gnu.org>2024-06-27 10:19:12 +0200
commit432b8a346e10488a1751b86e7c51fff3ee870ae4 (patch)
tree5ce421bb1979c27d4699d3f911f1151e43d6f670 /gcc/ada
parent089bb078e8663f72292f2edc63f48c304dcb1ccc (diff)
downloadgcc-432b8a346e10488a1751b86e7c51fff3ee870ae4.zip
gcc-432b8a346e10488a1751b86e7c51fff3ee870ae4.tar.gz
gcc-432b8a346e10488a1751b86e7c51fff3ee870ae4.tar.bz2
ada: Fix array-manipulating code in Mdll
This patch fixes a duo of array assigments in Mdll that were bound to fail. gcc/ada/ * mdll.adb (Build_Non_Reloc_DLL): Fix incorrect assignment to array object. (Ada_Build_Non_Reloc_DLL): Likewise.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/mdll.adb43
1 files changed, 26 insertions, 17 deletions
diff --git a/gcc/ada/mdll.adb b/gcc/ada/mdll.adb
index 2f946b0..ac4af83 100644
--- a/gcc/ada/mdll.adb
+++ b/gcc/ada/mdll.adb
@@ -322,17 +322,21 @@ package body MDLL is
-- Build the DLL
declare
- Params : OS_Lib.Argument_List :=
- Adr_Opt'Unchecked_Access & All_Options;
+ Params : constant OS_Lib.Argument_List :=
+ Map_Opt'Unchecked_Access &
+ Adr_Opt'Unchecked_Access & All_Options;
+ First_Param : Positive := Params'First + 1;
+
begin
if Map_File then
- Params := Map_Opt'Unchecked_Access & Params;
+ First_Param := Params'First;
end if;
- Utl.Gcc (Output_File => Dll_File,
- Files => Exp_File'Unchecked_Access & Ofiles,
- Options => Params,
- Build_Lib => True);
+ Utl.Gcc
+ (Output_File => Dll_File,
+ Files => Exp_File'Unchecked_Access & Ofiles,
+ Options => Params (First_Param .. Params'Last),
+ Build_Lib => True);
end;
OS_Lib.Delete_File (Exp_File, Success);
@@ -377,20 +381,25 @@ package body MDLL is
Utl.Gnatbind (L_Afiles, Options & Bargs_Options);
declare
- Params : OS_Lib.Argument_List :=
- Out_Opt'Unchecked_Access &
- Dll_File'Unchecked_Access &
- Lib_Opt'Unchecked_Access &
- Exp_File'Unchecked_Access &
- Adr_Opt'Unchecked_Access &
- Ofiles &
- All_Options;
+ Params : constant OS_Lib.Argument_List :=
+ Map_Opt'Unchecked_Access &
+ Out_Opt'Unchecked_Access &
+ Dll_File'Unchecked_Access &
+ Lib_Opt'Unchecked_Access &
+ Exp_File'Unchecked_Access &
+ Adr_Opt'Unchecked_Access &
+ Ofiles &
+ All_Options;
+ First_Param : Positive := Params'First + 1;
+
begin
if Map_File then
- Params := Map_Opt'Unchecked_Access & Params;
+ First_Param := Params'First;
end if;
- Utl.Gnatlink (L_Afiles (L_Afiles'Last).all, Params);
+ Utl.Gnatlink
+ (L_Afiles (L_Afiles'Last).all,
+ Params (First_Param .. Params'Last));
end;
OS_Lib.Delete_File (Exp_File, Success);