From 074d147ef77e287a15b82b7d661d9e530e81bc4a Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 4 Jun 1993 19:53:32 +0000 Subject: [PATCH] Formerly main.c.~87~ --- main.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/main.c b/main.c index 2c22d2e..fe731c7 100644 --- a/main.c +++ b/main.c @@ -712,8 +712,11 @@ main (argc, argv, envp) /* Replace the name that read_all_makefiles will see with the name of the temporary file. */ { - makefiles->list[i] = (char *) alloca (sizeof (name)); - bcopy (name, makefiles->list[i], sizeof (name)); + char *temp; + /* SGI compiler requires alloca's result be assigned simply. */ + temp = (char *) alloca (sizeof (name)); + bcopy (name, temp, sizeof (name)); + makefiles->list[i] = temp; } /* Make sure the temporary file will not be remade. */ @@ -1436,8 +1439,10 @@ decode_env_switches (envar, len) return; /* Make a copy of the value in ARGS, where we will munge it. - If it does not begin with a dash, prepend one. */ - args = (char *) alloca (1 + len + 2); + If it does not begin with a dash, prepend one. + We must allocate lasting storage for this (and we never free it) because + decode_switches may save pointers into it for string-valued switches. */ + args = (char *) xmalloc (1 + len + 2); if (value[0] != '-') args[0] = '-'; bcopy (value, value[0] == '-' ? args : &args[1], len + 1); -- 2.7.4