aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gospec.c
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2012-01-17 14:52:42 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2012-01-17 14:52:42 +0000
commita6d10e80119b8dc77f7e8d791cbd0546a4b0aa22 (patch)
tree450c67c91976dd6284e71bcd8f1ebefe6a30474e /gcc/go/gospec.c
parent4df0f7da3775139a40ef3b4a6fbcdb1413097b26 (diff)
downloadgcc-a6d10e80119b8dc77f7e8d791cbd0546a4b0aa22.zip
gcc-a6d10e80119b8dc77f7e8d791cbd0546a4b0aa22.tar.gz
gcc-a6d10e80119b8dc77f7e8d791cbd0546a4b0aa22.tar.bz2
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
Diffstat (limited to 'gcc/go/gospec.c')
-rw-r--r--gcc/go/gospec.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/gcc/go/gospec.c b/gcc/go/gospec.c
index 55a3bcd..8e8aa2dd 100644
--- a/gcc/go/gospec.c
+++ b/gcc/go/gospec.c
@@ -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]);