aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2011-07-07 14:24:21 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2011-07-07 14:24:21 +0100
commit3ce9f090550e4bae93cd81d0ebebfad932c938af (patch)
tree65056fe4e7576161deac5116d3bed950c6d8f543 /gcc
parent41dfca871e78a0bae628716ca066b5b5269f54f5 (diff)
downloadgcc-3ce9f090550e4bae93cd81d0ebebfad932c938af.zip
gcc-3ce9f090550e4bae93cd81d0ebebfad932c938af.tar.gz
gcc-3ce9f090550e4bae93cd81d0ebebfad932c938af.tar.bz2
gcc.c (%[Spec]): Don't document.
* gcc.c (%[Spec]): Don't document. (struct spec_list): Update comment. (do_spec_1): Don't handle %[Spec]. * doc/invoke.texi (%[@var{name}]): Remove documentation of spec. From-SVN: r175970
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/doc/invoke.texi3
-rw-r--r--gcc/gcc.c68
3 files changed, 17 insertions, 61 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c2929e5..b2be097 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2011-07-07 Joseph Myers <joseph@codesourcery.com>
+ * gcc.c (%[Spec]): Don't document.
+ (struct spec_list): Update comment.
+ (do_spec_1): Don't handle %[Spec].
+ * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
+
+2011-07-07 Joseph Myers <joseph@codesourcery.com>
+
* common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
default based on TARGET_ASM_NAMED_SECTION.
* common/common-target.def (have_named_sections): Default to true.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 223a9d5..0be0f4d 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -9768,9 +9768,6 @@ Use this when inconsistent options are detected.
@item %(@var{name})
Substitute the contents of spec string @var{name} at this point.
-@item %[@var{name}]
-Like @samp{%(@dots{})} but put @samp{__} around @option{-D} arguments.
-
@item %x@{@var{option}@}
Accumulate an option for @samp{%X}.
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 235c54c..5e5d3c2 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -438,7 +438,6 @@ or with constant text in a single argument.
This may be combined with '.', '!', ',', '|', and '*' as above.
%(Spec) processes a specification defined in a specs file as *Spec:
- %[Spec] as above, but put __ around -D arguments
The conditional text X in a %{S:X} or similar construct may contain
other nested % constructs or spaces, or even newlines. They are
@@ -1149,8 +1148,8 @@ static const char *multilib_dir;
static const char *multilib_os_dir;
/* Structure to keep track of the specs that have been defined so far.
- These are accessed using %(specname) or %[specname] in a compiler
- or link spec. */
+ These are accessed using %(specname) in a compiler or link
+ spec. */
struct spec_list
{
@@ -5212,11 +5211,7 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
/* Process a string found as the value of a spec given by name.
This feature allows individual machine descriptions
- to add and use their own specs.
- %[...] modifies -D options the way %P does;
- %(...) uses the spec unmodified. */
- case '[':
- warning (0, "use of obsolete %%[ operator in specs");
+ to add and use their own specs. */
case '(':
{
const char *name = p;
@@ -5225,7 +5220,7 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
/* The string after the S/P is the name of a spec that is to be
processed. */
- while (*p && *p != ')' && *p != ']')
+ while (*p && *p != ')')
p++;
/* See if it's in the list. */
@@ -5234,63 +5229,20 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
{
name = *(sl->ptr_spec);
#ifdef DEBUG_SPECS
- fnotice (stderr, "Processing spec %c%s%c, which is '%s'\n",
- c, sl->name, (c == '(') ? ')' : ']', name);
+ fnotice (stderr, "Processing spec (%s), which is '%s'\n",
+ sl->name, name);
#endif
break;
}
if (sl)
{
- if (c == '(')
- {
- value = do_spec_1 (name, 0, NULL);
- if (value != 0)
- return value;
- }
- else
- {
- char *x = (char *) alloca (strlen (name) * 2 + 1);
- char *buf = x;
- const char *y = name;
- int flag = 0;
-
- /* Copy all of NAME into BUF, but put __ after
- every -D and at the end of each arg. */
- while (1)
- {
- if (! strncmp (y, "-D", 2))
- {
- *x++ = '-';
- *x++ = 'D';
- *x++ = '_';
- *x++ = '_';
- y += 2;
- flag = 1;
- continue;
- }
- else if (flag
- && (*y == ' ' || *y == '\t' || *y == '='
- || *y == '}' || *y == 0))
- {
- *x++ = '_';
- *x++ = '_';
- flag = 0;
- }
- if (*y == 0)
- break;
- else
- *x++ = *y++;
- }
- *x = 0;
-
- value = do_spec_1 (buf, 0, NULL);
- if (value != 0)
- return value;
- }
+ value = do_spec_1 (name, 0, NULL);
+ if (value != 0)
+ return value;
}
- /* Discard the closing paren or bracket. */
+ /* Discard the closing paren. */
if (*p)
p++;
}