From 0c76b21e3a9b993ce607842dbd2ddb916f642a49 Mon Sep 17 00:00:00 2001
From: rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 17 Apr 2004 05:53:11 +0000
Subject: [PATCH] 	* gcc.c (used_arg): Check whether an option has been
 removed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80787 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog |  4 ++++
 gcc/gcc.c     | 29 +++++++++++++++--------------
 2 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f50a5ea620b6..7566df2be3cf 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 e004697431ec..f9a4e1db3cd6 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
-- 
GitLab