This is the mail archive of the 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

On Dec 2, 2004, at 10:45 PM, Geoffrey Keating wrote:

Devang Patel <> 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 <>

         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.

Aha... actually 'for' loop's next iteration is entered but following lines ensure expected behavior in IMA mode. (For IMA mode, it'd be nice if 'for' loop is avoided, but that's for some other time)

      if (infiles[i].compiled)

OK, if I just delete the 'break' as you suggest ?

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

It is necessary because that one is used for 'save-temps'.


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 ();
!         break;
         /* If this compilation succeeded, don't delete those files
later.  */
         clear_failure_queue ();
--- 6549,6559 ----
           delete_failure_queue ();
!         /* 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]