summaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-31 20:29:28 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-31 20:29:28 +0000
commit219626ad06447381178d5b124b3763d631dc110e (patch)
treeee8a8ed7c7cd3d552d036001e3c45b585e180905 /gcc/target.h
parent02b088c62e20f329f3668796f5fca183eb1c122c (diff)
downloadgcc-219626ad06447381178d5b124b3763d631dc110e.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86843 138bc75d-0d04-0410-961f-82ee72b054a4
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 27e4086129e..57b38cf25f4 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. */