aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Gil <gil@adacore.com>2019-08-20 09:47:53 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-08-20 09:47:53 +0000
commitfdacd614f4162311af0e60a02e6ff6b47ba809a5 (patch)
tree1e4cf5d3f2c86c45dfa0bf9404ab7255c793747e
parente1976249a2f4ddf0d98952c2394db9b1e2c634a6 (diff)
downloadgcc-fdacd614f4162311af0e60a02e6ff6b47ba809a5.zip
gcc-fdacd614f4162311af0e60a02e6ff6b47ba809a5.tar.gz
gcc-fdacd614f4162311af0e60a02e6ff6b47ba809a5.tar.bz2
[Ada] Initialize gnat_argc/gnat_argv only the first time
2019-08-20 Philippe Gil <gil@adacore.com> gcc/ada/ * bindgen.adb (Gen_Main): Set gnat_argc/gnat_argv to argc/argv only when still uninitialized. From-SVN: r274716
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/bindgen.adb15
2 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 91128b4..8485a9c 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-20 Philippe Gil <gil@adacore.com>
+
+ * bindgen.adb (Gen_Main): Set gnat_argc/gnat_argv to argc/argv
+ only when still uninitialized.
+
2019-08-20 Bob Duff <duff@adacore.com>
* libgnat/g-comlin.ads (Exit_From_Command_Line): Fix
diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb
index 8ea8a6b..153043c 100644
--- a/gcc/ada/bindgen.adb
+++ b/gcc/ada/bindgen.adb
@@ -1826,18 +1826,25 @@ package body Bindgen is
WBI (" begin");
- -- Acquire command line arguments if present on target
+ -- Acquire command-line arguments if present on target
if CodePeer_Mode then
null;
elsif Command_Line_Args_On_Target then
- WBI (" gnat_argc := argc;");
- WBI (" gnat_argv := argv;");
+
+ -- Initialize gnat_argc/gnat_argv only if not already initialized,
+ -- to avoid losing the result of any command-line processing done by
+ -- earlier GNAT run-time initialization.
+
+ WBI (" if gnat_argc = 0 then");
+ WBI (" gnat_argc := argc;");
+ WBI (" gnat_argv := argv;");
+ WBI (" end if;");
WBI (" gnat_envp := envp;");
WBI ("");
- -- If configurable run time and no command line args, then nothing needs
+ -- If configurable run-time and no command-line args, then nothing needs
-- to be done since the gnat_argc/argv/envp variables are suppressed in
-- this case.