summaryrefslogtreecommitdiff
path: root/gcc/defaults.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/defaults.h')
-rw-r--r--gcc/defaults.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 9ec2af1a5ab..45fb088785f 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -325,5 +325,16 @@ do { \
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) DW_EH_PE_absptr
#endif
+/* By default, the C++ compiler will use the lowest bit of the pointer
+ to function to indicate a pointer-to-member-function points to a
+ virtual member function. However, if FUNCTION_BOUNDARY indicates
+ function addresses aren't always even, the lowest bit of the delta
+ field will be used. */
+#ifndef TARGET_PTRMEMFUNC_VBIT_LOCATION
+#define TARGET_PTRMEMFUNC_VBIT_LOCATION \
+ (FUNCTION_BOUNDARY >= 2 * BITS_PER_UNIT \
+ ? ptrmemfunc_vbit_in_pfn : ptrmemfunc_vbit_in_delta)
+#endif
+
#endif /* GCC_DEFAULTS_H */