diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2005-10-17 04:22:03 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@physics.uc.edu> | 2005-10-17 04:22:03 +0000 |
commit | 5a4f7f371cde3f73235db4b8b424956302934de4 (patch) | |
tree | 22064a83d217afbda03a19976677b57f94ac4a54 /gcc/gcc.c | |
parent | b29394f8d3f4e9b70f50158947ea959de2d9e099 (diff) |
2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
PR driver/22544
* gcc.c (have_c): New static variable.
(have_o): Likewise.
(process_command): Remove declation of have_c.
Set have_o to 1 when handling -o.
(main): Add a fatel error if there are multiple
files specified and -o and -c/-S is passed witout
-combine or multiple languages.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@105487 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r-- | gcc/gcc.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c index bb6d5a1d6d1..db0cd0e1596 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -1851,6 +1851,12 @@ static int argbuf_index; static int have_o_argbuf_index = 0; +/* Were the options -c or -S passed. */ +static int have_c = 0; + +/* Was the option -o passed. */ +static int have_o = 0; + /* This is the list of suffixes and codes (%g/%u/%U/%j) and the associated temp file. If the HOST_BIT_BUCKET is used for %j, no entry is made for it here. */ @@ -3148,7 +3154,6 @@ process_command (int argc, const char **argv) char *temp1; const char *spec_lang = 0; int last_language_n_infiles; - int have_c = 0; int lang_n_infiles = 0; #ifdef MODIFY_TARGET_NAME int is_modify_target_name; @@ -3700,6 +3705,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n" goto normal_switch; case 'o': + have_o = 1; #if defined(HAVE_TARGET_EXECUTABLE_SUFFIX) if (! have_c) { @@ -6425,7 +6431,7 @@ main (int argc, const char **argv) if (combine_flag) combine_inputs = true; else - combine_inputs = false; + combine_inputs = false; for (i = 0; (int) i < n_infiles; i++) { @@ -6456,6 +6462,9 @@ main (int argc, const char **argv) infiles[i].compiled = false; infiles[i].preprocessed = false; } + + if (!combine_inputs && have_c && have_o && n_infiles > 1) + fatal ("cannot specify -o with -c or -S with multiple files"); if (combine_flag && save_temps_flag) { |