aboutsummaryrefslogtreecommitdiff
path: root/gcc/defaults.h
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2004-04-08 22:31:23 +0000
committerDanny Smith <dannysmith@gcc.gnu.org>2004-04-08 22:31:23 +0000
commit4a77e08cfcde08398ad78b29fce29a531190ed52 (patch)
treece3b9965aa669725a68d26a5e2a93e944f64f5bf /gcc/defaults.h
parentcc81dde821dd144faa36924fe5c5febd54c64649 (diff)
downloadgcc-4a77e08cfcde08398ad78b29fce29a531190ed52.zip
gcc-4a77e08cfcde08398ad78b29fce29a531190ed52.tar.gz
gcc-4a77e08cfcde08398ad78b29fce29a531190ed52.tar.bz2
re PR c++/14808 ([win32] Undefined results with virtual base classes)
PR c++/14808 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default to 1 if ASM_OUTPUT_DEF is defined. * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document. * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define. Set to non-zero iff not a one_only decl. * cp/method.c (use_thunk): Test TARGET_USE_LOCAL_THUNK_ALIAS_P rather than ASM_OUTPUT_DEF. From-SVN: r80525
Diffstat (limited to 'gcc/defaults.h')
-rw-r--r--gcc/defaults.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/defaults.h b/gcc/defaults.h
index e4a6fae..9f261d0 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -484,6 +484,16 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \
#define TARGET_VTABLE_DATA_ENTRY_DISTANCE 1
#endif
+/* Decide whether it is safe to use a local alias for a virtual function
+ when constructing thunks. */
+#ifndef TARGET_USE_LOCAL_THUNK_ALIAS_P
+#ifdef ASM_OUTPUT_DEF
+#define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) 1
+#else
+#define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) 0
+#endif
+#endif
+
/* Select a format to encode pointers in exception handling data. We
prefer those that result in fewer dynamic relocations. Assume no
special support here and encode direct references. */