diff options
author | Ronan Desplanques <desplanques@adacore.com> | 2024-05-02 09:52:34 +0200 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2024-06-27 10:19:12 +0200 |
commit | 432b8a346e10488a1751b86e7c51fff3ee870ae4 (patch) | |
tree | 5ce421bb1979c27d4699d3f911f1151e43d6f670 | |
parent | 089bb078e8663f72292f2edc63f48c304dcb1ccc (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/ada/mdll.adb | 43 |
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); |