+Fri Sep 4 11:57:50 1998 Tom Tromey <tromey@cygnus.com>
+
+ * gcc.c (do_spec_1): [case 'o'] Account for
+ lang_specific_extra_outfiles.
+ (main): Correctly clear all slots in outfiles for
+ lang_specific_extra_outfiles. Set input_file_number before
+ calling lang_specific_pre_link.
+
Fri Sep 4 10:37:07 1998 Jim Wilson <wilson@cygnus.com>
* loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
break;
case 'o':
- for (i = 0; i < n_infiles; i++)
- store_arg (outfiles[i], 0, 0);
- break;
+ {
+ int max = n_infiles;
+#ifdef LANG_SPECIFIC_DRIVER
+ max += lang_specific_extra_outfiles;
+#endif
+ for (i = 0; i < max; i++)
+ if (outfiles[i])
+ store_arg (outfiles[i], 0, 0);
+ break;
+ }
case 'O':
obstack_grow (&obstack, OBJECT_SUFFIX, strlen (OBJECT_SUFFIX));
i += lang_specific_extra_outfiles;
#endif
outfiles = (char **) xmalloc (i * sizeof (char *));
- bzero ((char *) outfiles, n_infiles * sizeof (char *));
+ bzero ((char *) outfiles, i * sizeof (char *));
/* Record which files were specified explicitly as link input. */
}
#ifdef LANG_SPECIFIC_DRIVER
- if (error_count == 0
- && lang_specific_pre_link ())
- error_count++;
+ if (error_count == 0)
+ {
+ /* Make sure INPUT_FILE_NUMBER points to first available open
+ slot. */
+ input_file_number = n_infiles;
+ if (lang_specific_pre_link ())
+ error_count++;
+ }
#endif
/* Run ld to link all the compiler output files. */