aboutsummaryrefslogtreecommitdiff
path: root/gcc/target-def.h
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2004-06-25 17:15:46 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-06-25 17:15:46 +0000
commit4185ae53974032b6760938b7818099cb7dddd28f (patch)
treeb8c2d8bd3079657353a50fef059902fbbf159bfe /gcc/target-def.h
parent0da2c8ac77a61f9149fcbf3da36f7656aff96a4c (diff)
downloadgcc-4185ae53974032b6760938b7818099cb7dddd28f.zip
gcc-4185ae53974032b6760938b7818099cb7dddd28f.tar.gz
gcc-4185ae53974032b6760938b7818099cb7dddd28f.tar.bz2
target-def.h (TARGET_CXX_GUARD_TYPE, [...]): Define.
gcc/ * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT, TARGET_CXX): Define. (TARGET_INITIALIZER): Use TARGET_CXX. * target.h (struct gcc_target): Add struct cxx. * targhooks.h (default_cxx_guard_type): Add prototype. * targhooks.c (default_cxx_guard_type): New function. * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT): Define. (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions. * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and TARGET_CXX_GUARD_MASK_BIT. gcc/cp/ * decl2.c (get_guard): Call targetm.cxx.guard_type. (get_guard_bits, get_guard_cond): Call targetm.cxx.guard_mask_bit. libstdc++/ * libsupc++/cxxabi.h: Define __ARM_EABI__ (__guard): Use it. * libsupc++/guard.h (__cxa_guard_acquire, __cxa_guard_release): Ditto. From-SVN: r83660
Diffstat (limited to 'gcc/target-def.h')
-rw-r--r--gcc/target-def.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/target-def.h b/gcc/target-def.h
index c537c9f..72fda5b 100644
--- a/gcc/target-def.h
+++ b/gcc/target-def.h
@@ -390,6 +390,22 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 0
#endif
+
+/* C++ specific. */
+#ifndef TARGET_CXX_GUARD_TYPE
+#define TARGET_CXX_GUARD_TYPE default_cxx_guard_type
+#endif
+
+#ifndef TARGET_CXX_GUARD_MASK_BIT
+#define TARGET_CXX_GUARD_MASK_BIT hook_bool_void_false
+#endif
+
+#define TARGET_CXX \
+ { \
+ TARGET_CXX_GUARD_TYPE, \
+ TARGET_CXX_GUARD_MASK_BIT \
+ }
+
/* The whole shebang. */
#define TARGET_INITIALIZER \
{ \
@@ -435,6 +451,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_BUILTIN_SETJMP_FRAME_VALUE, \
TARGET_MD_ASM_CLOBBERS, \
TARGET_CALLS, \
+ TARGET_CXX, \
TARGET_HAVE_NAMED_SECTIONS, \
TARGET_HAVE_CTORS_DTORS, \
TARGET_HAVE_TLS, \