diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f50a5ea620b66e068e01fe1fe811af4b30411b1c..7566df2be3cf65c716b6c45e244990887e8f91ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-04-17 Richard Sandiford <rsandifo@redhat.com> + + * gcc.c (used_arg): Check whether an option has been removed. + 2004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2 diff --git a/gcc/gcc.c b/gcc/gcc.c index e004697431ec2765fa819c7ff740ad3c1199ed3e..f9a4e1db3cd6e9c179e05717be0267c0c073966b 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -6909,20 +6909,21 @@ used_arg (const char *p, int len) = xmalloc (sizeof (struct mswitchstr) * (n_mdswitches + (n_switches ? n_switches : 1))); for (i = 0; i < n_switches; i++) - { - int xlen = strlen (switches[i].part1); - for (j = 0; j < cnt; j++) - if (xlen == matches[j].len - && ! strncmp (switches[i].part1, matches[j].str, xlen)) - { - mswitches[n_mswitches].str = matches[j].replace; - mswitches[n_mswitches].len = matches[j].rep_len; - mswitches[n_mswitches].replace = (char *) 0; - mswitches[n_mswitches].rep_len = 0; - n_mswitches++; - break; - } - } + if (switches[i].live_cond != SWITCH_IGNORE) + { + int xlen = strlen (switches[i].part1); + for (j = 0; j < cnt; j++) + if (xlen == matches[j].len + && ! strncmp (switches[i].part1, matches[j].str, xlen)) + { + mswitches[n_mswitches].str = matches[j].replace; + mswitches[n_mswitches].len = matches[j].rep_len; + mswitches[n_mswitches].replace = (char *) 0; + mswitches[n_mswitches].rep_len = 0; + n_mswitches++; + break; + } + } /* Add MULTILIB_DEFAULTS switches too, as long as they were not present on the command line nor any options mutually incompatible with