This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
other/633: In specs, %{<XXX*} does NOT remove switches from command line
- To: gcc-gnats at gcc dot gnu dot org
- Subject: other/633: In specs, %{<XXX*} does NOT remove switches from command line
- From: Pekka dot Nikander at iki dot fi
- Date: 12 Oct 2000 10:03:46 -0000
- Reply-To: Pekka dot Nikander at iki dot fi
- Resent-Cc: gcc-prs at gcc dot gnu dot org, gcc-bugs at gcc dot gnu dot org
- Resent-Reply-To: gcc-gnats@gcc.gnu.org, Pekka.Nikander@iki.fi
>Number: 633
>Category: other
>Synopsis: In specs, %{<XXX*} does NOT remove switches from command line
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Oct 12 03:06:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: Pekka Nikander
>Release: gcc version 2.97 20001011 (experimental)
>Organization:
>Environment:
FreeBSD-4.1.1-STABLE
>Description:
In specs definitions, %{<xxxyyy} removes XXX from appearing
on the command line even if later on %{xxx*} is specified.
However, %{<xxx*} does NOT remove all switches starting
with xxx, but instead is identical to %{xxx*}.
>How-To-Repeat:
>Fix:
diff -u -r1.171 gcc.c
--- gcc.c 2000/10/05 22:55:19 1.171
+++ gcc.c 2000/10/12 10:03:09
@@ -4785,7 +4785,7 @@
&& do_spec_1 (save_string (body, endbody-body-1), 0, NULL_PTR) < 0)
return 0;
}
- else if (p[-1] == '*' && p[0] == '}')
+ else if (!elide_switch && p[-1] == '*' && p[0] == '}')
{
/* Substitute all matching switches as separate args. */
register int i;
>Release-Note:
>Audit-Trail:
>Unformatted: