opts-common.c (decode_cmdline_option): Print empty string argument as "" in decoded->orig_option_with_args_text.

* opts-common.c (decode_cmdline_option): Print empty string
	argument as "" in decoded->orig_option_with_args_text.
	* gcc.c (execute): Print empty string argument as ""
	in the verbose output.
	(do_spec_1): Keep empty string argument.

	testsuite/
	* gcc.dg/cpp/include7.c: New test.

From-SVN: r170426
This commit is contained in:
Jie Zhang 2011-02-23 02:04:43 +00:00 committed by Jie Zhang
parent f85b70fda4
commit 7fcf46f509
5 changed files with 42 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2011-02-23 Jie Zhang <jie@codesourcery.com>
* opts-common.c (decode_cmdline_option): Print empty string
argument as "" in decoded->orig_option_with_args_text.
* gcc.c (execute): Print empty string argument as ""
in the verbose output.
(do_spec_1): Keep empty string argument.
2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
* config.gcc: Declare score-* and crx-* obsolete.

View File

@ -2538,13 +2538,20 @@ execute (void)
}
fputc ('"', stderr);
}
/* If it's empty, print "". */
else if (!**j)
fprintf (stderr, " \"\"");
else
fprintf (stderr, " %s", *j);
}
}
else
for (j = commands[i].argv; *j; j++)
fprintf (stderr, " %s", *j);
/* If it's empty, print "". */
if (!**j)
fprintf (stderr, " \"\"");
else
fprintf (stderr, " %s", *j);
/* Print a pipe symbol after all but the last command. */
if (i + 1 != n_commands)
@ -4423,6 +4430,10 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
int i;
int value;
/* If it's an empty string argument to a switch, keep it as is. */
if (inswitch && !*p)
arg_going = 1;
while ((c = *p++))
/* If substituting a switch, treat all chars like letters.
Otherwise, NL, SPC, TAB and % are special. */
@ -5149,7 +5160,8 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
case '*':
if (soft_matched_part)
{
do_spec_1 (soft_matched_part, 1, NULL);
if (soft_matched_part[0])
do_spec_1 (soft_matched_part, 1, NULL);
do_spec_1 (" ", 0, NULL);
}
else

View File

@ -607,11 +607,15 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
{
if (i < result)
{
size_t len;
if (opt_index == OPT_SPECIAL_unknown)
decoded->canonical_option[i] = argv[i];
else
decoded->canonical_option[i] = NULL;
total_len += strlen (argv[i]) + 1;
len = strlen (argv[i]);
/* If the argument is an empty string, we will print it as "" in
orig_option_with_args_text. */
total_len += (len != 0 ? len : 2) + 1;
}
else
decoded->canonical_option[i] = NULL;
@ -637,7 +641,14 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
{
size_t len = strlen (argv[i]);
memcpy (p, argv[i], len);
/* Print the empty string verbally. */
if (len == 0)
{
*p++ = '"';
*p++ = '"';
}
else
memcpy (p, argv[i], len);
p += len;
if (i == result - 1)
*p++ = 0;

View File

@ -1,3 +1,7 @@
2011-02-23 Jie Zhang <jie@codesourcery.com>
* gcc.dg/cpp/include7.c: New test.
2011-02-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/47242

View File

@ -0,0 +1,3 @@
/* { dg-do compile } */
/* { dg-options "-I \"\"" } */