93 lines
2.5 KiB
Diff
93 lines
2.5 KiB
Diff
2013-03-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
PR bootstrap/56509
|
|
* opts.c (opts_obstack, opts_concat): Moved to...
|
|
* opts-common.c (opts_obstack, opts_concat): ... here.
|
|
|
|
--- gcc/opts-common.c.jj 2013-02-27 08:27:26.000000000 +0100
|
|
+++ gcc/opts-common.c 2013-03-04 10:02:58.016096542 +0100
|
|
@@ -692,6 +692,40 @@ decode_cmdline_option (const char **argv
|
|
return result;
|
|
}
|
|
|
|
+/* Obstack for option strings. */
|
|
+
|
|
+struct obstack opts_obstack;
|
|
+
|
|
+/* Like libiberty concat, but allocate using opts_obstack. */
|
|
+
|
|
+char *
|
|
+opts_concat (const char *first, ...)
|
|
+{
|
|
+ char *newstr, *end;
|
|
+ size_t length = 0;
|
|
+ const char *arg;
|
|
+ va_list ap;
|
|
+
|
|
+ /* First compute the size of the result and get sufficient memory. */
|
|
+ va_start (ap, first);
|
|
+ for (arg = first; arg; arg = va_arg (ap, const char *))
|
|
+ length += strlen (arg);
|
|
+ newstr = XOBNEWVEC (&opts_obstack, char, length + 1);
|
|
+ va_end (ap);
|
|
+
|
|
+ /* Now copy the individual pieces to the result string. */
|
|
+ va_start (ap, first);
|
|
+ for (arg = first, end = newstr; arg; arg = va_arg (ap, const char *))
|
|
+ {
|
|
+ length = strlen (arg);
|
|
+ memcpy (end, arg, length);
|
|
+ end += length;
|
|
+ }
|
|
+ *end = '\0';
|
|
+ va_end (ap);
|
|
+ return newstr;
|
|
+}
|
|
+
|
|
/* Decode command-line options (ARGC and ARGV being the arguments of
|
|
main) into an array, setting *DECODED_OPTIONS to a pointer to that
|
|
array and *DECODED_OPTIONS_COUNT to the number of entries in the
|
|
--- gcc/opts.c.jj 2013-02-27 08:27:26.000000000 +0100
|
|
+++ gcc/opts.c 2013-03-04 10:02:16.401346992 +0100
|
|
@@ -268,40 +268,6 @@ add_comma_separated_to_vector (void **pv
|
|
*pvec = v;
|
|
}
|
|
|
|
-/* Like libiberty concat, but allocate using opts_obstack. */
|
|
-
|
|
-char *
|
|
-opts_concat (const char *first, ...)
|
|
-{
|
|
- char *newstr, *end;
|
|
- size_t length = 0;
|
|
- const char *arg;
|
|
- va_list ap;
|
|
-
|
|
- /* First compute the size of the result and get sufficient memory. */
|
|
- va_start (ap, first);
|
|
- for (arg = first; arg; arg = va_arg (ap, const char *))
|
|
- length += strlen (arg);
|
|
- newstr = XOBNEWVEC (&opts_obstack, char, length + 1);
|
|
- va_end (ap);
|
|
-
|
|
- /* Now copy the individual pieces to the result string. */
|
|
- va_start (ap, first);
|
|
- for (arg = first, end = newstr; arg; arg = va_arg (ap, const char *))
|
|
- {
|
|
- length = strlen (arg);
|
|
- memcpy (end, arg, length);
|
|
- end += length;
|
|
- }
|
|
- *end = '\0';
|
|
- va_end (ap);
|
|
- return newstr;
|
|
-}
|
|
-
|
|
-/* Obstack for option strings. */
|
|
-
|
|
-struct obstack opts_obstack;
|
|
-
|
|
/* Initialize OPTS and OPTS_SET before using them in parsing options. */
|
|
|
|
void
|