aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2004-11-05 00:18:51 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2004-11-05 00:18:51 +0000
commit04fb56d5990d68f903b15b367e23be9a27d27673 (patch)
tree2c7b87865b69a5a634daf74740d623e77960bef0 /gcc/doc
parent30a8b5f807de4e90d2420b1b36b79db174395be4 (diff)
downloadgcc-04fb56d5990d68f903b15b367e23be9a27d27673.zip
gcc-04fb56d5990d68f903b15b367e23be9a27d27673.tar.gz
gcc-04fb56d5990d68f903b15b367e23be9a27d27673.tar.bz2
arm.c (arm_handle_notshared_attribute): New function.
* 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. From-SVN: r90099
Diffstat (limited to 'gcc/doc')
-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 a4cbb2f..0e5e970 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: