This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/21675] New: -fvisibility : misleading documentation and low QoI
- From: "ofv at wanadoo dot es" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 May 2005 03:44:57 -0000
- Subject: [Bug c++/21675] New: -fvisibility : misleading documentation and low QoI
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The -fvisibility documentation talks about declarations when explaining where to
put __attribute__ ((visibility("default"))). However, compiling this code:
class __attribute__ ((visibility("default"))) Foo;
class Foo {};
produces a warning:
warning: type attributes are honored only at type definition
The mentions to Windows DLLs on the documentation and the web pages it refers to
are misleading: Windows compilers allows dll-exporting by putting
__declspec(dllexport) on the declarations. Lots of dll-aware Windows and
cross-platform code (ex. wxWindows) puts the __declspect(dllexport|dllimport) on
declarations. By disallowing attributes on declarations, you difficult the use
of the visibility feature for those libraries and break the builds on Windows
with MinGW.
I suggest to allow (at least certain) attributes on declarations as it was the
case for MinGW until recently or change the -fvisibility documentation for
explicitly saying that __attribute__ ((visibility("default"))) should be used on
definitions only.
--
Summary: -fvisibility : misleading documentation and low QoI
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ofv at wanadoo dot es
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21675