This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Remove fold_obj_type_ref hook, update OBJ_TYPE_REF comment
- From: Martin Jambor <mjambor at suse dot cz>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Richard Guenther <rguenther at suse dot de>, Tom Tromey <tromey at redhat dot com>, Jason Merrill <jason at redhat dot com>
- Date: Thu, 13 May 2010 18:30:50 +0200
- Subject: [PATCH] Remove fold_obj_type_ref hook, update OBJ_TYPE_REF comment
Hi,
this is a short followup to my OBJ_TYPE_REF folding patch. It removes
the now unused fold_obj_type_ref langhook and updates the comment on
OBJ_TYPE_REF in tree.def to document what operands the middle-end now
expects in the reference.
Bootstrapped and tested on x86-64-linux. OK for trunk?
Thanks,
Martin
2010-05-13 Martin Jambor <mjambor@suse.cz>
* cp/cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
and define.
* langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
* langhooks.h (struct lang_hooks_for_decls): Removed field
fold_obj_type_ref.
* tree.c (free_lang_data): Remove assignment to
lang_hooks.fold_obj_type_ref.
* tree.def (OBJ_TYPE_REF): Update comment.
Index: icln/gcc/cp/cp-lang.c
===================================================================
--- icln.orig/gcc/cp/cp-lang.c
+++ icln/gcc/cp/cp-lang.c
@@ -77,8 +77,6 @@ static tree cp_eh_personality (void);
#define LANG_HOOKS_DECL_PRINTABLE_NAME cxx_printable_name
#undef LANG_HOOKS_DWARF_NAME
#define LANG_HOOKS_DWARF_NAME cxx_dwarf_name
-#undef LANG_HOOKS_FOLD_OBJ_TYPE_REF
-#define LANG_HOOKS_FOLD_OBJ_TYPE_REF cp_fold_obj_type_ref
#undef LANG_HOOKS_INIT_TS
#define LANG_HOOKS_INIT_TS cp_init_ts
#undef LANG_HOOKS_EH_PERSONALITY
Index: icln/gcc/langhooks-def.h
===================================================================
--- icln.orig/gcc/langhooks-def.h
+++ icln/gcc/langhooks-def.h
@@ -133,7 +133,6 @@ extern void lhd_omp_firstprivatize_type_
/* Hooks for tree gimplification. */
#define LANG_HOOKS_GIMPLIFY_EXPR lhd_gimplify_expr
-#define LANG_HOOKS_FOLD_OBJ_TYPE_REF NULL
/* Tree dump hooks. */
extern bool lhd_tree_dump_dump_tree (void *, tree);
@@ -291,7 +290,6 @@ extern void lhd_end_section (void);
LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS, \
LANG_HOOKS_FUNCTION_PARAMETER_PACK_P, \
LANG_HOOKS_GIMPLIFY_EXPR, \
- LANG_HOOKS_FOLD_OBJ_TYPE_REF, \
LANG_HOOKS_BUILTIN_FUNCTION, \
LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE, \
LANG_HOOKS_INIT_TS, \
Index: icln/gcc/langhooks.h
===================================================================
--- icln.orig/gcc/langhooks.h
+++ icln/gcc/langhooks.h
@@ -417,10 +417,6 @@ struct lang_hooks
enum gimplify_status, though we can't see that type here. */
int (*gimplify_expr) (tree *, gimple_seq *, gimple_seq *);
- /* Fold an OBJ_TYPE_REF expression to the address of a function.
- KNOWN_TYPE carries the true type of the OBJ_TYPE_REF_OBJECT. */
- tree (*fold_obj_type_ref) (tree, tree);
-
/* Do language specific processing in the builtin function DECL */
tree (*builtin_function) (tree decl);
Index: icln/gcc/tree.c
===================================================================
--- icln.orig/gcc/tree.c
+++ icln/gcc/tree.c
@@ -5038,7 +5038,6 @@ free_lang_data (void)
lang_hooks.dwarf_name = lhd_dwarf_name;
lang_hooks.decl_printable_name = gimple_decl_printable_name;
lang_hooks.set_decl_assembler_name = lhd_set_decl_assembler_name;
- lang_hooks.fold_obj_type_ref = gimple_fold_obj_type_ref;
/* Reset diagnostic machinery. */
diagnostic_starter (global_dc) = default_diagnostic_starter;
Index: icln/gcc/tree.def
===================================================================
--- icln.orig/gcc/tree.def
+++ icln/gcc/tree.def
@@ -432,16 +432,13 @@ DEFTREECODE (ALIGN_INDIRECT_REF, "align_
or 0 if the alignment is unknown. */
DEFTREECODE (MISALIGNED_INDIRECT_REF, "misaligned_indirect_ref", tcc_reference, 2)
-/* Used to represent lookup of runtime type dependent data. Often this is
- a reference to a vtable, but it needn't be. Operands are:
+/* Used to represent lookup in a virtual method table which is dependent on
+ the runtime type of an object. Operands are:
OBJ_TYPE_REF_EXPR: An expression that evaluates the value to use.
OBJ_TYPE_REF_OBJECT: Is the object on whose behalf the lookup is
being performed. Through this the optimizers may be able to statically
determine the dynamic type of the object.
- OBJ_TYPE_REF_TOKEN: Something front-end specific used to resolve the
- reference to something simpler, usually to the address of a DECL.
- Never touched by the middle-end. Good choices would be either an
- identifier or a vtable index. */
+ OBJ_TYPE_REF_TOKEN: An integer index to the virtual method table. */
DEFTREECODE (OBJ_TYPE_REF, "obj_type_ref", tcc_expression, 3)
/* Constructor: return an aggregate value made from specified components.