aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-tree.h
diff options
context:
space:
mode:
authorNathan Sidwell <sidwell@codesourcery.com>2000-01-28 13:30:13 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2000-01-28 13:30:13 +0000
commit7267d6924e8ce13cbb4003cb6fe2a83702f8b0cc (patch)
tree319612614a1a38c46dc5ff15b2d46fd2af2763f8 /gcc/cp/cp-tree.h
parent73565a7129b32a8b2e3e463c4e8595b499a75de5 (diff)
downloadgcc-7267d6924e8ce13cbb4003cb6fe2a83702f8b0cc.zip
gcc-7267d6924e8ce13cbb4003cb6fe2a83702f8b0cc.tar.gz
gcc-7267d6924e8ce13cbb4003cb6fe2a83702f8b0cc.tar.bz2
Compiler side new abi rtti (not enabled).
* cp-tree.h (new_abi_rtti_p): New macro. (emit_support_tinfos): Prototype new function. (tinfo_decl_p): Likewise. (emit_tinfo_decl): Likwise. * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor macros. (doing_runtime): New local static. (init_rtti_processing): Add new-abi initializer. (get_tinfo_decl): Add new-abi logic. (tinfo_from_decl): Likewise. (build_dynamic_cast_1): Likewise. (qualifier_flags): New static function. (tinfo_base_init): Likewise. (generic_initializer): Likewise. (ptr_ref_initializer): Likewise. (ptmd_initializer): Likewise. (class_hint_flags): Likewise. (class_initializer): Likewise. (synthesize_tinfo_var): Likewise. (create_real_tinfo_var): Likewise. (create_pseudo_type_info): Likewise. (get_vmi_pseudo_type_info): Likewise. (create_tinfo_types): Likewise. (emit_support_tinfos): New global function. (tinfo_decl_p): New global predicate. (emit_tinfo_decl): New global function. * class.c (set_rtti_entry): Generalize for old and new rtti. (build_vtbl_initializer): Likewise. * decl2.c (finish_file): Likewise. From-SVN: r31668
Diffstat (limited to 'gcc/cp/cp-tree.h')
-rw-r--r--gcc/cp/cp-tree.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 062586c..299414a 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -238,6 +238,11 @@ extern int flag_rtti;
class). */
#define all_overridden_vfuns_in_vtables_p() (flag_new_abi)
+/* Nonzero if we use access type_info objects directly, and use the
+ cross-vendor layout for them. Zero if we use an accessor function
+ to get the type_info object address. */
+#define new_abi_rtti_p() (0)
+
/* Language-dependent contents of an identifier. */
@@ -3988,13 +3993,16 @@ extern void init_repo PARAMS ((const char *));
extern void finish_repo PARAMS ((void));
/* in rtti.c */
-extern void init_rtti_processing PARAMS ((void));
-extern tree build_typeid PARAMS ((tree));
-extern tree get_tinfo_decl PARAMS ((tree));
-extern tree get_typeid PARAMS ((tree));
-extern tree get_typeid_1 PARAMS ((tree));
-extern tree build_dynamic_cast PARAMS ((tree, tree));
-extern void synthesize_tinfo_fn PARAMS ((tree));
+extern void init_rtti_processing PARAMS((void));
+extern tree build_typeid PARAMS((tree));
+extern tree get_tinfo_decl PARAMS((tree));
+extern tree get_typeid PARAMS((tree));
+extern tree get_typeid_1 PARAMS((tree));
+extern tree build_dynamic_cast PARAMS((tree, tree));
+extern void synthesize_tinfo_fn PARAMS((tree));
+extern void emit_support_tinfos PARAMS((void));
+extern int tinfo_decl_p PARAMS((tree, void *));
+extern int emit_tinfo_decl PARAMS((tree *, void *));
/* in search.c */
extern int types_overlap_p PARAMS ((tree, tree));