summaryrefslogtreecommitdiff
path: root/gcc/target-def.h
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-12 06:33:48 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-12 06:33:48 +0000
commit7908506dc32e18df07b8dd488e59cf88b2915830 (patch)
tree094ff9b55bb63ac087619633c1c3d109473587ff /gcc/target-def.h
parent0478f08262c5423206a16a323e4142513a308f46 (diff)
downloadgcc-7908506dc32e18df07b8dd488e59cf88b2915830.tar.gz
* target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
(TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro. (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise. (TARGET_CXX): Adjust accordingly. * target.h (struct gcc_target): Remove epxort_class_data. Add determine_class_data_visibility and class_data_always_comdat. * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove. (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document. (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise. * config/arm/arm.c (arm_cxx_export_class_data): Remove. (arm_cxx_determine_class_data_visibility): New. (arm_cxx_class_data_always_comdat): Likewise. (TARGET_CXX_EXPORT_CLASS_DATA): Remove. (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define. (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise. * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define. * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define. * decl2.c (determine_visibility): Don't use export_class_data. (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY. * testsuite/g++.dg/ext/visibility/arm2.C: New test. * testsuite/g++.dg/ext/visibility/arm3.C: Likewise. * testsuite/g++.dg/ext/visibility/symbian2.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98010 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target-def.h')
-rw-r--r--gcc/target-def.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/target-def.h b/gcc/target-def.h
index aa65e37c5ac..44e3791f0ab 100644
--- a/gcc/target-def.h
+++ b/gcc/target-def.h
@@ -469,8 +469,12 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TARGET_CXX_KEY_METHOD_MAY_BE_INLINE hook_bool_void_true
#endif
-#ifndef TARGET_CXX_EXPORT_CLASS_DATA
-#define TARGET_CXX_EXPORT_CLASS_DATA hook_bool_void_false
+#ifndef TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY
+#define TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY hook_void_tree
+#endif
+
+#ifndef TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT
+#define TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT hook_bool_void_true
#endif
#define TARGET_CXX \
@@ -482,7 +486,8 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_CXX_IMPORT_EXPORT_CLASS, \
TARGET_CXX_CDTOR_RETURNS_THIS, \
TARGET_CXX_KEY_METHOD_MAY_BE_INLINE, \
- TARGET_CXX_EXPORT_CLASS_DATA \
+ TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY, \
+ TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT, \
}
/* The whole shebang. */