aboutsummaryrefslogtreecommitdiff
path: root/gcc/target-def.h
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2004-09-01 03:45:30 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2004-09-01 03:45:30 +0000
commit505970fc3324e2a0c00f5d82d66f62bae133e282 (patch)
treeec2aef636de8abf10479855a1221a1b908fabff6 /gcc/target-def.h
parentbe8fff8104f223a0eaa5ea36f385982d09d9731e (diff)
downloadgcc-505970fc3324e2a0c00f5d82d66f62bae133e282.zip
gcc-505970fc3324e2a0c00f5d82d66f62bae133e282.tar.gz
gcc-505970fc3324e2a0c00f5d82d66f62bae133e282.tar.bz2
target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
* target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA. * target.h (cxx): Add export_class_data. * config/arm/arm.c (arm_cxx_export_class_data): New function. (TARGET_CXX_EXPORT_CLASS_DATA): Use it. * testsuite/g++.dg/ext/visibility/arm1.C: New test. * cp-tree.h (DECL_CONSTRUCTION_VTABLE_P): New macro. * class.c (build_ctor_vtbl_group): Set DECL_CONSTRUCTION_VTABLE_P. * decl2.c (determine_visibility): Honor TARGET_CXX_EXPORT_CLASS_DATA. * g++.dg/ext/visibility/arm1.C: New test. From-SVN: r86867
Diffstat (limited to 'gcc/target-def.h')
-rw-r--r--gcc/target-def.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/gcc/target-def.h b/gcc/target-def.h
index e49d055..3b4c11b 100644
--- a/gcc/target-def.h
+++ b/gcc/target-def.h
@@ -441,15 +441,20 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TARGET_CXX_KEY_METHOD_MAY_BE_INLINE hook_bool_void_true
#endif
-#define TARGET_CXX \
- { \
- TARGET_CXX_GUARD_TYPE, \
- TARGET_CXX_GUARD_MASK_BIT, \
- TARGET_CXX_GET_COOKIE_SIZE, \
- TARGET_CXX_COOKIE_HAS_SIZE, \
- TARGET_CXX_IMPORT_EXPORT_CLASS, \
- TARGET_CXX_CDTOR_RETURNS_THIS, \
- TARGET_CXX_KEY_METHOD_MAY_BE_INLINE \
+#ifndef TARGET_CXX_EXPORT_CLASS_DATA
+#define TARGET_CXX_EXPORT_CLASS_DATA hook_bool_void_false
+#endif
+
+#define TARGET_CXX \
+ { \
+ TARGET_CXX_GUARD_TYPE, \
+ TARGET_CXX_GUARD_MASK_BIT, \
+ TARGET_CXX_GET_COOKIE_SIZE, \
+ TARGET_CXX_COOKIE_HAS_SIZE, \
+ TARGET_CXX_IMPORT_EXPORT_CLASS, \
+ TARGET_CXX_CDTOR_RETURNS_THIS, \
+ TARGET_CXX_KEY_METHOD_MAY_BE_INLINE, \
+ TARGET_CXX_EXPORT_CLASS_DATA \
}
/* The whole shebang. */