summaryrefslogtreecommitdiffstats
path: root/gcc/cp/tree.c
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-05 23:48:19 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-05 23:48:19 +0000
commit054e01a7e41b19576369dc78d910f91412baa321 (patch)
treed7dc3135dd465d3142b9f9b46de3296e9776e05b /gcc/cp/tree.c
parent26aefe065f7cb9c6f8f71f2c7d42a55289a451ba (diff)
downloadppe42-gcc-054e01a7e41b19576369dc78d910f91412baa321.tar.gz
ppe42-gcc-054e01a7e41b19576369dc78d910f91412baa321.zip
* langhooks.h (struct lang_hooks_for_tree_inlining): Add
start_inlining, end_inlining. * tree-inline.c (expand_call_inline): Call them. * langhooks-def.h (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. (LANG_HOOKS_TREE_INLINING_INITIALIZER): Add them. * langhooks.c (lhd_tree_inlining_start_inlining): New fn. (lhd_tree_inlining_end_inlining): New fn. * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. * tree.c (cp_start_inlining, cp_end_inlining): New fns. * pt.c (push_tinst_level): No longer static. * cp-tree.h: Declare them. * init.c (resolve_offset_ref): Don't check access for the base conversion to access a FIELD_DECL. * cp-tree.h (TYPE_REFFN_P): New macro. * decl.c (bad_specifiers): Check it, too. * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY on the __*_type_info type if we haven't seen a definition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47703 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/tree.c')
-rw-r--r--gcc/cp/tree.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 600c6e3746d..1d0c32475ad 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -2230,6 +2230,30 @@ cp_copy_res_decl_for_inlining (result, fn, caller, decl_map_,
return var;
}
+/* Record that we're about to start inlining FN, and return non-zero if
+ that's OK. Used for lang_hooks.tree_inlining.start_inlining. */
+
+int
+cp_start_inlining (fn)
+ tree fn;
+{
+ if (DECL_TEMPLATE_INSTANTIATION (fn))
+ return push_tinst_level (fn);
+ else
+ return 1;
+}
+
+/* Record that we're done inlining FN. Used for
+ lang_hooks.tree_inlining.end_inlining. */
+
+void
+cp_end_inlining (fn)
+ tree fn ATTRIBUTE_UNUSED;
+{
+ if (DECL_TEMPLATE_INSTANTIATION (fn))
+ pop_tinst_level ();
+}
+
/* Initialize tree.c. */
void
OpenPOWER on IntegriCloud