diff options
author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-10-17 04:22:03 +0000 |
---|---|---|
committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-10-17 04:22:03 +0000 |
commit | 89dfd38de3731fb1c2439c8be026892607b570b3 (patch) | |
tree | 22064a83d217afbda03a19976677b57f94ac4a54 /gcc | |
parent | a4153ce29713a08c95e39b6955ca9057804999d4 (diff) | |
download | ppe42-gcc-89dfd38de3731fb1c2439c8be026892607b570b3.tar.gz ppe42-gcc-89dfd38de3731fb1c2439c8be026892607b570b3.zip |
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: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105487 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/gcc.c | 13 |
2 files changed, 22 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6612783daf0..d2d1caf78c3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +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. + 2005-10-16 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/22444 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) { |