This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH]: Remove staticp langhook


This langhook is a remnant from a time when expand had to handle all
the frontend specific trees.
This is no longer the case, and as such, all the implementations of
this are dead code.

I have added asserts in place of the langhook use on the off chance
someone out-of-tree is trying to still throw lang-specific trees at
expand.

Bootstrapped and regtested on i686-pc-linux-gnu and i686-darwin.
Okay for mainline?

In /
2007-04-05  Daniel Berlin  <dberlin@dberlin.org>

	* tree.c (staticp): No longer use staticp langhook.
	* langhooks.c (lhd_staticp): Removed.
	* langhooks.h (struct lang_hooks): Remove staticp.
	* c-common.c (c_staticp): Remove.
	* c-common.h (c_staticp): Ditto.
	* langhooks-defs.h (lhd_staticp): Ditto.
	(LHD_HOOKS_STATICP): Ditto

In cp/
2007-04-05  Daniel Berlin  <dberlin@dberlin.org>

	* cp-objcp-common.c (cxx_staticp): Remove.
	* cp-objcp-common.h (LANG_HOOKS_STATICP): Remove.
	* cp-tree.h (cxx_staticp):
--- tree.c	(revision 2902)
+++ tree.c	(revision 2903)
@@ -1986,10 +1986,7 @@ staticp (tree arg)
       return arg;
 
     case COMPONENT_REF:
-      /* If the thing being referenced is not a field, then it is
-	 something language specific.  */
-      if (TREE_CODE (TREE_OPERAND (arg, 1)) != FIELD_DECL)
-	return (*lang_hooks.staticp) (arg);
+      gcc_assert (TREE_CODE (TREE_OPERAND (arg, 1)) == FIELD_DECL)
 
       /* If we are referencing a bitfield, we can't evaluate an
 	 ADDR_EXPR at compile time and so it isn't a constant.  */
@@ -2015,11 +2012,8 @@ staticp (tree arg)
 	return false;
 
     default:
-      if ((unsigned int) TREE_CODE (arg)
-	  >= (unsigned int) LAST_AND_UNUSED_TREE_CODE)
-	return lang_hooks.staticp (arg);
-      else
-	return NULL;
+      gcc_assert (TREE_CODE (arg) <= LAST_AND_UNUSED_TREE_CODE);
+      return NULL;
     }
 }
 
--- cp/cp-objcp-common.c	(revision 2902)
+++ cp/cp-objcp-common.c	(revision 2903)
@@ -200,21 +200,6 @@ cxx_types_compatible_p (tree x, tree y)
   return 0;
 }
 
-tree
-cxx_staticp (tree arg)
-{
-  switch (TREE_CODE (arg))
-    {
-    case BASELINK:
-      return staticp (BASELINK_FUNCTIONS (arg));
-
-    default:
-      break;
-    }
-  
-  return NULL_TREE;
-}
-
 /* Stubs to keep c-opts.c happy.  */
 void
 push_file_scope (void)
--- cp/cp-objcp-common.h	(revision 2902)
+++ cp/cp-objcp-common.h	(revision 2903)
@@ -59,8 +59,6 @@ extern tree objcp_tsubst_copy_and_build 
 #define LANG_HOOKS_EXPAND_DECL c_expand_decl
 #undef LANG_HOOKS_PARSE_FILE
 #define LANG_HOOKS_PARSE_FILE c_common_parse_file
-#undef LANG_HOOKS_STATICP
-#define LANG_HOOKS_STATICP cxx_staticp
 #undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
 #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL cxx_dup_lang_specific_decl
 #undef LANG_HOOKS_SET_DECL_ASSEMBLER_NAME
--- cp/cp-tree.h	(revision 2902)
+++ cp/cp-tree.h	(revision 2903)
@@ -4816,7 +4816,6 @@ extern bool cp_var_mod_type_p			(tree, t
 extern void cxx_initialize_diagnostics		(struct diagnostic_context *);
 extern int cxx_types_compatible_p		(tree, tree);
 extern void init_shadowed_var_for_decl		(void);
-extern tree cxx_staticp                         (tree);
 
 /* in cp-gimplify.c */
 extern int cp_gimplify_expr			(tree *, tree *, tree *);
--- c-objc-common.h	(revision 2902)
+++ c-objc-common.h	(revision 2903)
@@ -56,8 +56,6 @@ extern void c_initialize_diagnostics (di
 #define LANG_HOOKS_FINISH_INCOMPLETE_DECL c_finish_incomplete_decl
 #undef LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS
 #define LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS true
-#undef LANG_HOOKS_STATICP
-#define LANG_HOOKS_STATICP c_staticp
 #undef LANG_HOOKS_NO_BODY_BLOCKS
 #define LANG_HOOKS_NO_BODY_BLOCKS true
 #undef LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL
--- langhooks.c	(revision 2902)
+++ langhooks.c	(revision 2903)
@@ -125,14 +125,6 @@ lhd_safe_from_p (rtx ARG_UNUSED (x), tre
   return 1;
 }
 
-/* Called from staticp.  */
-
-tree
-lhd_staticp (tree ARG_UNUSED (exp))
-{
-  return NULL;
-}
-
 /* Called from check_global_declarations.  */
 
 bool
--- langhooks.h	(revision 2902)
+++ langhooks.h	(revision 2903)
@@ -333,9 +333,6 @@ struct lang_hooks
      successful.  */
   bool (*mark_addressable) (tree);
 
-  /* Hook called by staticp for language-specific tree codes.  */
-  tree (*staticp) (tree);
-
   /* Replace the DECL_LANG_SPECIFIC data, which may be NULL, of the
      DECL_NODE with a newly GC-allocated copy.  */
   void (*dup_lang_specific_decl) (tree);
--- c-common.c	(revision 2902)
+++ c-common.c	(revision 2903)
@@ -4294,15 +4294,6 @@ c_expand_body (tree fndecl)
 				decl_fini_priority_lookup (fndecl));
 }
 
-/* Hook used by staticp to handle language-specific tree codes.  */
-
-tree
-c_staticp (tree exp)
-{
-  return (TREE_CODE (exp) == COMPOUND_LITERAL_EXPR
-	  && TREE_STATIC (COMPOUND_LITERAL_EXPR_DECL (exp))
-	  ? exp : NULL);
-}
 
 
 /* Given a boolean expression ARG, return a tree representing an increment
--- c-common.h	(revision 2902)
+++ c-common.h	(revision 2903)
@@ -825,8 +825,6 @@ extern bool vector_types_convertible_p (
 extern rtx c_expand_expr (tree, rtx, enum machine_mode, int, rtx *);
 extern void c_expand_body (tree);
 
-extern tree c_staticp (tree);
-
 extern void init_c_lex (void);
 
 extern void c_cpp_builtins (cpp_reader *);
--- langhooks-def.h	(revision 2902)
+++ langhooks-def.h	(revision 2903)
@@ -50,7 +50,6 @@ extern tree lhd_return_null_tree_v (void
 extern tree lhd_return_null_tree (tree);
 extern tree lhd_do_nothing_iii_return_null_tree (int, int, int);
 extern int lhd_safe_from_p (rtx, tree);
-extern tree lhd_staticp (tree);
 extern void lhd_print_tree_nothing (FILE *, tree, int);
 extern const char *lhd_decl_printable_name (tree, int);
 extern const char *lhd_dwarf_name (tree, int);
@@ -112,7 +111,6 @@ extern void lhd_omp_firstprivatize_type_
 #define LANG_HOOKS_EXPAND_DECL		lhd_expand_decl
 #define LANG_HOOKS_SAFE_FROM_P		lhd_safe_from_p
 #define LANG_HOOKS_FINISH_INCOMPLETE_DECL lhd_do_nothing_t
-#define LANG_HOOKS_STATICP		lhd_staticp
 #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL lhd_do_nothing_t
 #define LANG_HOOKS_SET_DECL_ASSEMBLER_NAME lhd_set_decl_assembler_name
 #define LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS false
@@ -299,7 +297,6 @@ extern tree lhd_make_node (enum tree_cod
   LANG_HOOKS_SAFE_FROM_P, \
   LANG_HOOKS_FINISH_INCOMPLETE_DECL, \
   LANG_HOOKS_MARK_ADDRESSABLE, \
-  LANG_HOOKS_STATICP, \
   LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, \
   LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, \
   LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS, \

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]