aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2004-08-31 20:29:28 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2004-08-31 20:29:28 +0000
commitaf287697443400b33dbfd2297bdcf63121e7bc86 (patch)
treeee8a8ed7c7cd3d552d036001e3c45b585e180905 /gcc/target.h
parent678584fc80fc69fbd3c4f5f15d484ed6006f41be (diff)
downloadgcc-af287697443400b33dbfd2297bdcf63121e7bc86.zip
gcc-af287697443400b33dbfd2297bdcf63121e7bc86.tar.gz
gcc-af287697443400b33dbfd2297bdcf63121e7bc86.tar.bz2
hooks.c (hook_bool_void_true): New function.
* hooks.c (hook_bool_void_true): New function. * hooks.h (hook_bool_void_true): Declare. * target-def.h (TARGET_CXX): Add TARGET_CXX_KEY_METHOD_MAY_BE_INLINE. * target.h (struct cxx): Add key_method_may_be_inline. * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New function. (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro. * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of __THUMB_INTERWORK. * class.c (key_method): Rename to ... (determine_key_method): ... this. (finish_struct_1): Adjust accordingly. * cp-tree.h (key_method): Declare. * decl2.c (maybe_emit_vtables): Determine the key method here if it has not already been done. * g++.dg/abi/key1.C: New test. From-SVN: r86843
Diffstat (limited to 'gcc/target.h')
-rw-r--r--gcc/target.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h
index 27e4086..57b38cf 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -516,6 +516,11 @@ struct gcc_target
int (*import_export_class) (tree, int);
/* Returns true if constructors and destructors return "this". */
bool (*cdtor_returns_this) (void);
+ /* Returns true if the key method for a class can be an inline
+ function, so long as it is not declared inline in the class
+ itself. Returning true is the behavior required by the Itanium
+ C++ ABI. */
+ bool (*key_method_may_be_inline) (void);
} cxx;
/* Leave the boolean fields at the end. */