summaryrefslogtreecommitdiff
path: root/gcc/doc/extend.texi
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-05 00:18:51 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-05 00:18:51 +0000
commita79b1d933a7c38b74ee89cb3bcdd55d6f2cc8ccc (patch)
tree2c7b87865b69a5a634daf74740d623e77960bef0 /gcc/doc/extend.texi
parent875cd3bb445f82a2a02535ee2af491964a17d6e0 (diff)
downloadgcc-a79b1d933a7c38b74ee89cb3bcdd55d6f2cc8ccc.tar.gz
* config/arm/arm.c (arm_handle_notshared_attribute): New function.
* doc/extend.texi: Document "notshared" attribute. * testsuite/g++.dg/ext/visibility/symbian1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90099 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc/extend.texi')
-rw-r--r--gcc/doc/extend.texi23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index a4cbb2f69c0..0e5e970e398 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -3307,6 +3307,29 @@ declaration, the above program would abort when compiled with
@option{-fstrict-aliasing}, which is on by default at @option{-O2} or
above in recent GCC versions.
+@subsection ARM Type Attributes
+
+On those ARM targets that support @code{dllimport} (such as Symbian
+OS), you can use the @code{notshared} attribute to indicate that the
+virtual table and other similar data for a class should not be
+exported from a DLL. For example:
+
+@smallexample
+class __declspec(notshared) C @{
+public:
+ __declspec(dllimport) C();
+ virtual void f();
+@}
+
+__declspec(dllexport)
+C::C() @{@}
+@end smallexample
+
+In this code, @code{C::C} is exported from the current DLL, but the
+virtual table for @code{C} is not exported. (You can use
+@code{__attribute__} instead of @code{__declspec} if you prefer, but
+most Symbian OS code uses @code{__declspec}.)
+
@subsection i386 Type Attributes
Two attributes are currently defined for i386 configurations: