aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorEric Christopher <echristo@redhat.com>2005-07-12 18:10:32 +0000
committerEric Christopher <echristo@gcc.gnu.org>2005-07-12 18:10:32 +0000
commit817a82551ec74a6c6f1e1a94c2f42adefdce0240 (patch)
tree17f89da87c3c10babdf608c9118efba5f77280d4 /gcc/gcc.c
parentfd5d2c3eb8be24888508f421c852442a64b1d96b (diff)
downloadgcc-817a82551ec74a6c6f1e1a94c2f42adefdce0240.zip
gcc-817a82551ec74a6c6f1e1a94c2f42adefdce0240.tar.gz
gcc-817a82551ec74a6c6f1e1a94c2f42adefdce0240.tar.bz2
gcc.c (struct infile): Update comment for language.
2005-07-12 Eric Christopher <echristo@redhat.com> * gcc.c (struct infile): Update comment for language. (main): Rewrite input file resetting code. From-SVN: r101934
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r--gcc/gcc.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index c137ad4..e3b8b49 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -2936,6 +2936,13 @@ static struct switchstr *switches;
static int n_switches;
+/* Language is one of three things:
+
+ 1) The name of a real programming language.
+ 2) NULL, indicating that no one has figured out
+ what it is yet.
+ 3) '*', indicating that the file should be passed
+ to the linker. */
struct infile
{
const char *name;
@@ -6553,11 +6560,21 @@ main (int argc, const char **argv)
clear_failure_queue ();
}
- /* Reset the output file name to the first input file name, for use
- with %b in LINK_SPEC on a target that prefers not to emit a.out
- by default. */
+ /* Reset the input file name to the first compile/object file name, for use
+ with %b in LINK_SPEC. We use the first input file that we can find
+ a compiler to compile it instead of using infiles.language since for
+ languages other than C we use aliases that we then lookup later. */
if (n_infiles > 0)
- set_input (infiles[0].name);
+ {
+ int i;
+
+ for (i = 0; i < n_infiles ; i++)
+ if (infiles[i].language && infiles[i].language != '*')
+ {
+ set_input (infiles[i].name);
+ break;
+ }
+ }
if (error_count == 0)
{