This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [wwwdocs] 4.2 visibility, anonymous namespace changes 4.3 TLS emu changes
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: Jason Merrill <jason at redhat dot com>
- Cc: Benjamin Kosnik <bkoz at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 12 May 2007 17:03:22 +0200 (CEST)
- Subject: Re: [wwwdocs] 4.2 visibility, anonymous namespace changes 4.3 TLS emu changes
- References: <4611481B.90003@redhat.com> <Pine.LNX.4.64.0704022319180.11247@acrux.dbai.tuwien.ac.at> <46121692.8000408@redhat.com> <Pine.LNX.4.64.0704071609390.11247@acrux.dbai.tuwien.ac.at> <461B57CC.6080709@redhat.com> <461BE0B4.70208@redhat.com>
On Tue, 10 Apr 2007, Jason Merrill wrote:
> C++ visibility handling has been overhauled for 4.2:
Thanks for the description. I transformed this into a patch, and went
installing the below.
Gerald
Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.2/changes.html,v
retrieving revision 1.32
diff -u -3 -p -r1.32 changes.html
--- changes.html 9 Apr 2007 22:09:06 -0000 1.32
+++ changes.html 12 May 2007 15:02:01 -0000
@@ -112,6 +112,26 @@
<ul>
<li>
+ <p>C++ visibility handling has been overhauled.</p>
+
+ <p>Restricted visiblity is propagated from classes to members, from
+ functions to local statics, and from templates and template arguments
+ to instantiations, unless the latter has explicitly declared visibility.
+ </p>
+
+ <p>The visibility attribute for a class must come between the class-key
+ and the name, not after the closing brace.</p>
+
+ <p>Attributes are now allowed for enums and elaborated-type-specifiers
+ that only declare a type.</p>
+
+ <p>Members of the anonymous namespace are now local to a particular
+ translation unit, along with any other declarations which use them,
+ though they are still treated as having external linkage for language
+ semantics.</p>
+ </li>
+
+ <li>
The (undocumented) extension which permitted templates with
default arguments to be bound to template template parameters with
fewer parameters has been removed. For example: