diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e5564acbd2bd4637e21cfad36849a734e29e582d..bbb97ec6c9c738635bf924711dd568f64484ef76 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-10-14 Pascal Obry <obry@adacore.com> + + * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E. + (process_command): Handle -E as done with -c and -S. Do not add + the target executable suffix to the output file when -E is used. + (main): Adjust error message accordingly. + 2009-10-14 Alexandre Oliva <aoliva@redhat.com> PR debug/41343 diff --git a/gcc/gcc.c b/gcc/gcc.c index 52fe2277b826a68add15baf210ddf1a41d0d6c4a..78e0ce8d87ed0b9ad4a8ebccfe72216f01d42230 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -984,7 +984,7 @@ static struct user_specs *user_specs_head, *user_specs_tail; #ifdef HAVE_TARGET_EXECUTABLE_SUFFIX /* This defines which switches stop a full compilation. */ #define DEFAULT_SWITCH_CURTAILS_COMPILATION(CHAR) \ - ((CHAR) == 'c' || (CHAR) == 'S') + ((CHAR) == 'c' || (CHAR) == 'S' || (CHAR) == 'E') #ifndef SWITCH_CURTAILS_COMPILATION #define SWITCH_CURTAILS_COMPILATION(CHAR) \ @@ -2000,7 +2000,7 @@ static int argbuf_index; static int have_o_argbuf_index = 0; -/* Were the options -c or -S passed. */ +/* Were the options -c, -S or -E passed. */ static int have_c = 0; /* Was the option -o passed. */ @@ -4142,6 +4142,7 @@ process_command (int argc, const char **argv) case 'S': case 'c': + case 'E': if (p[1] == 0) { have_c = 1; @@ -4157,7 +4158,7 @@ process_command (int argc, const char **argv) { int skip; - /* Forward scan, just in case -S or -c is specified + /* Forward scan, just in case -S, -E or -c is specified after -o. */ int j = i + 1; if (p[1] == 0) @@ -7304,7 +7305,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n" } if (!combine_inputs && have_c && have_o && lang_n_infiles > 1) - fatal ("cannot specify -o with -c or -S with multiple files"); + fatal ("cannot specify -o with -c, -S or -E with multiple files"); if (combine_flag && save_temps_flag) {