re PR bootstrap/56509 (gnattools build failure)
PR bootstrap/56509 * opts.c (opts_obstack, opts_concat): Moved to... * opts-common.c (opts_obstack, opts_concat): ... here. From-SVN: r196449
This commit is contained in:
parent
da56a169ac
commit
a5d1569a6d
|
@ -1,3 +1,9 @@
|
||||||
|
2013-03-05 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR bootstrap/56509
|
||||||
|
* opts.c (opts_obstack, opts_concat): Moved to...
|
||||||
|
* opts-common.c (opts_obstack, opts_concat): ... here.
|
||||||
|
|
||||||
2013-03-04 Jakub Jelinek <jakub@redhat.com>
|
2013-03-04 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR middle-end/56461
|
PR middle-end/56461
|
||||||
|
|
|
@ -692,6 +692,40 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
|
||||||
return result;
|
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
|
/* Decode command-line options (ARGC and ARGV being the arguments of
|
||||||
main) into an array, setting *DECODED_OPTIONS to a pointer to that
|
main) into an array, setting *DECODED_OPTIONS to a pointer to that
|
||||||
array and *DECODED_OPTIONS_COUNT to the number of entries in the
|
array and *DECODED_OPTIONS_COUNT to the number of entries in the
|
||||||
|
|
34
gcc/opts.c
34
gcc/opts.c
|
@ -268,40 +268,6 @@ add_comma_separated_to_vector (void **pvec, const char *arg)
|
||||||
*pvec = v;
|
*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. */
|
/* Initialize OPTS and OPTS_SET before using them in parsing options. */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue