This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR 18732


Devang Patel <dpatel@apple.com> writes:

> GCC driver can handle multiple source files in two different way. In
> IMA mode, driver invokes compiler (cc1*) only one time and it creates
> only one assembly output. In normal mode, driver invokes compiler
> (cc1*) for each source file and it creates separate assembly output
> for each source file. In normal mode, in case of an error while
> processing one source file, it should continue and process next source
> file (after proper error reporting). This patch restores this behavior
> in GCC 4.0. It is a regression from earlier GCC versions.
> 
> 2004-12-1  Devang Patel  <dpatel@apple.com>
> 
>          PR 18732
>          * gcc.c (main): In case of error while processing first
> source file, process
>          next file, if separate assembly output is requested for each
> source files.
> 
> Bootstrapped and tested on powerpc-darwin.
> OK ?

I believe you can just delete the 'break'.  In the case of a
multi-file compile, the behaviour should be the same, any further
compilations (not that there would usually be any) should still be run.

The patch that introduced this also put another break about 70 lines
previously, is that one also unnecessary/wrong?

> Index: gcc.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/gcc.c,v
> retrieving revision 1.438
> diff -Idpatel.pbxuser -c -3 -p -r1.438 gcc.c
> *** gcc.c       24 Nov 2004 17:33:48 -0000      1.438
> --- gcc.c       1 Dec 2004 15:57:04 -0000
> *************** main (int argc, const char **argv)
> *** 6549,6555 ****
>          {
>            delete_failure_queue ();
>            error_count++;
> !         break;
>          }
>          /* If this compilation succeeded, don't delete those files
> later.  */
>          clear_failure_queue ();
> --- 6549,6559 ----
>          {
>            delete_failure_queue ();
>            error_count++;
> !
> !         /* If multiple source files are compiled together to
> generate one
> !            assembly file then do not process next source file.  */
> !         if (combine_inputs)
> !           break;
>          }
>          /* If this compilation succeeded, don't delete those files
> later.  */
>          clear_failure_queue ();


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]