gospec.c (lang_specific_driver): If we see -S without -o, add -o BASE.s rather than -o BASE.o.

* gospec.c (lang_specific_driver): If we see -S without -o, add -o
	BASE.s rather than -o BASE.o.

From-SVN: r183248
This commit is contained in:
Ian Lance Taylor 2012-01-17 14:52:42 +00:00 committed by Ian Lance Taylor
parent 4df0f7da37
commit a6d10e8011
2 changed files with 20 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2012-01-17 Ian Lance Taylor <iant@google.com>
* gospec.c (lang_specific_driver): If we see -S without -o, add -o
BASE.s rather than -o BASE.o.
2012-01-11 Ian Lance Taylor <iant@google.com>
* go-lang.c (go_langhook_init): Initialize void_list_node before

View File

@ -1,5 +1,5 @@
/* gospec.c -- Specific flags and argument handling of the gcc Go front end.
Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@ -109,6 +109,9 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
/* Whether the -o option was used. */
bool saw_opt_o = false;
/* Whether the -S option was used. */
bool saw_opt_S = false;
/* The first input file with an extension of .go. */
const char *first_go_file = NULL;
@ -163,7 +166,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
break;
case OPT_c:
case OPT_S:
case OPT_E:
case OPT_M:
case OPT_MM:
@ -173,6 +175,11 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
library = -1;
break;
case OPT_S:
saw_opt_S = true;
library = -1;
break;
case OPT_o:
saw_opt_o = true;
break;
@ -280,10 +287,13 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
alen = baselen + 3;
out = XNEWVEC (char, alen);
memcpy (out, base, baselen);
/* The driver will convert .o to some other suffix if
appropriate. */
/* The driver will convert .o to some other suffix (e.g., .obj)
if appropriate. */
out[baselen] = '.';
out[baselen + 1] = 'o';
if (saw_opt_S)
out[baselen + 1] = 's';
else
out[baselen + 1] = 'o';
out[baselen + 2] = '\0';
generate_option (OPT_o, out, 1, CL_DRIVER,
&new_decoded_options[j]);