diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-22 13:39:29 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-22 13:39:29 -0500 |
commit | 53117a2f4de1616ee110d5333b12bb592d301212 (patch) | |
tree | 95242e3949c0be51c2f835c52c87c031d8bde053 | |
parent | 964ceda1db0b52bb14da47fea846a8c893f849d7 (diff) | |
download | gcc-53117a2f4de1616ee110d5333b12bb592d301212.zip gcc-53117a2f4de1616ee110d5333b12bb592d301212.tar.gz gcc-53117a2f4de1616ee110d5333b12bb592d301212.tar.bz2 |
(compiler_version): New variable.
(spec_version): Initialize from DEFAULT_TARGET_VERSION.
(main): Distinguish COMPILER_VERSION from TARGET_VERSION.
(process_command): Use COMPILER_VERSION for %v.
Guard against a COMPILER_VERSION that lacks a minor.
From-SVN: r6264
-rw-r--r-- | gcc/gcc.c | 45 |
1 files changed, 33 insertions, 12 deletions
@@ -131,9 +131,13 @@ static int verbose_flag; static int save_temps_flag; -/* The compiler version specified with -V */ +/* The compiler version. */ -static char *spec_version; +static char *compiler_version; + +/* The target version specified with -V */ + +static char *spec_version = DEFAULT_TARGET_VERSION; /* The target machine specified with -b. */ @@ -2114,10 +2118,17 @@ process_command (argc, argv) n_switches = 0; n_infiles = 0; - /* Default for -V is our version number, ending at first space. */ - spec_version = save_string (version_string, strlen (version_string)); - for (temp = spec_version; *temp && *temp != ' '; temp++); - if (*temp) *temp = '\0'; + /* Figure compiler version from version string. */ + + compiler_version = save_string (version_string, strlen (version_string)); + for (temp = compiler_version; *temp; ++temp) + { + if (*temp == ' ') + { + *temp = '\0'; + break; + } + } /* Set up the default search paths. */ @@ -2394,6 +2405,7 @@ process_command (argc, argv) spec_version = argv[++i]; else spec_version = p + 1; + compiler_version = spec_version; break; case 's': @@ -3357,20 +3369,29 @@ do_spec_1 (spec, inswitch, soft_matched_part) case 'v': { int c1 = *p++; /* Select first or second version number. */ - char *p = spec_version; + char *v = compiler_version; char *q, *copy; /* If desired, advance to second version number. */ if (c1 == '2') { /* Set P after the first period. */ - while (*p != '.') p++; - p++; + while (*v != 0 && *v != ' ' && *v != '.') + v++; + if (*v == '.') + v++; } /* Set Q at the next period or at the end. */ - q = p; - while (*q != '.' && *q != 0) q++; + q = v; + while (*q != 0 && *q != ' ' && *q != '.') + q++; + /* Empty string means zero. */ + if (p == q) + { + v = "0"; + q = v + 1; + } /* Put that part into the command. */ - obstack_grow (&obstack, p, q - p); + obstack_grow (&obstack, v, q - v); arg_going = 1; } break; |