From af41c57d042d6b570c4f5de342e859f71bc67a18 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Mon, 17 Oct 2005 04:22:03 +0000 Subject: re PR driver/22544 (gcc ignores input file given on the command line) 2005-10-16 Andrew Pinski 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. From-SVN: r105487 --- gcc/ChangeLog | 11 +++++++++++ gcc/gcc.c | 13 +++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6612783..d2d1caf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2005-10-16 Andrew Pinski + + 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. + 2005-10-16 Daniel Berlin Fix PR tree-optimization/22444 diff --git a/gcc/gcc.c b/gcc/gcc.c index bb6d5a1..db0cd0e 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) { -- cgit v1.1