Remove attributes future direction

Joseph S. Myers joseph@codesourcery.com
Thu Sep 20 18:36:00 GMT 2007


The GCC manual contains speculation about a possible change to attribute 
binding that I wrote in 2001.  I no longer think such a change is a good 
idea; this part of the semantics is what it is, rather than a bug or an 
obscure area no-one uses.  Since some people have made the mistake of 
picking up this future direction from the manual, ignoring compatibility 
with existing implementations and deciding that my invention from 2001 
might be a good idea (see 
<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1259.htm>), I've applied 
this patch to remove that speculative future direction from the manual.

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 128621)
+++ ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2007-09-20  Joseph Myers  <joseph@codesourcery.com>
+
+	* doc/extend.texi (Attribute Syntax): Remove old speculative
+	future direction.
+
 2007-09-20  Mark Shinwell  <shinwell@codesourcery.com>
 
 	* combine.c: Include cgraph.h.
Index: doc/extend.texi
===================================================================
--- doc/extend.texi	(revision 128621)
+++ doc/extend.texi	(working copy)
@@ -3136,25 +3136,11 @@
 
 An attribute specifier list may appear immediately before the comma,
 @code{=} or semicolon terminating the declaration of an identifier other
-than a function definition.  At present, such attribute specifiers apply
-to the declared object or function, but in future they may attach to the
-outermost adjacent declarator.  In simple cases there is no difference,
-but, for example, in
-
-@smallexample
-void (****f)(void) __attribute__((noreturn));
-@end smallexample
-
-@noindent
-at present the @code{noreturn} attribute applies to @code{f}, which
-causes a warning since @code{f} is not a function, but in future it may
-apply to the function @code{****f}.  The precise semantics of what
-attributes in such cases will apply to are not yet specified.  Where an
+than a function definition.  Such attribute specifiers apply
+to the declared object or function.  Where an
 assembler name for an object or function is specified (@pxref{Asm
-Labels}), at present the attribute must follow the @code{asm}
-specification; in future, attributes before the @code{asm} specification
-may apply to the adjacent declarator, and those after it to the declared
-object or function.
+Labels}), the attribute must follow the @code{asm}
+specification.
 
 An attribute specifier list may, in future, be permitted to appear after
 the declarator in a function definition (before any old-style parameter

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Gcc-patches mailing list