]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
langhooks.h (struct lang_hooks): Add staticp.
authorJoseph Myers <jsm28@cam.ac.uk>
Tue, 4 Dec 2001 22:49:20 +0000 (22:49 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 4 Dec 2001 22:49:20 +0000 (22:49 +0000)
* langhooks.h (struct lang_hooks): Add staticp.
* langhooks-def.h (lhd_staticp, LANG_HOOKS_STATICP): New.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_STATICP.
* langhooks.c (lhd_staticp): New function.
* tree.c (staticp): Call lang_hooks.staticp for language-specific
tree codes.

From-SVN: r47628

gcc/ChangeLog
gcc/langhooks-def.h
gcc/langhooks.c
gcc/langhooks.h
gcc/tree.c

index b968b3bce1ab18633858c172f1119b457a8b03bb..22242e2274d26105fc549ea9b370f73e7298c467 100644 (file)
@@ -1,3 +1,12 @@
+2001-12-04  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * langhooks.h (struct lang_hooks): Add staticp.
+       * langhooks-def.h (lhd_staticp, LANG_HOOKS_STATICP): New.
+       (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_STATICP.
+       * langhooks.c (lhd_staticp): New function.
+       * tree.c (staticp): Call lang_hooks.staticp for language-specific
+       tree codes.
+
 2001-12-04  Neil Booth  <neil@daikokuya.demon.co.uk>
 
        * cppspec.c (lang_specific_driver): Set is_cpp_driver.
index 1ee631b1e759ba2ce08607d7678ab2a0f296853a..910d1f543594609bfe192d8e398e41d8e4ac4101 100644 (file)
@@ -42,6 +42,7 @@ extern int lhd_decode_option PARAMS ((int, char **));
 extern HOST_WIDE_INT lhd_get_alias_set PARAMS ((tree));
 extern tree lhd_return_tree PARAMS ((tree));
 extern int lhd_safe_from_p PARAMS ((rtx, tree));
+extern int lhd_staticp PARAMS ((tree));
 extern void lhd_clear_binding_stack PARAMS ((void));
 extern void lhd_print_tree_nothing PARAMS ((FILE *, tree, int));
 extern void lhd_set_yydebug PARAMS ((int));
@@ -71,6 +72,7 @@ int lhd_tree_inlining_anon_aggr_type_p                PARAMS ((tree));
 #define LANG_HOOKS_GET_ALIAS_SET       lhd_get_alias_set
 #define LANG_HOOKS_EXPAND_CONSTANT     lhd_return_tree
 #define LANG_HOOKS_SAFE_FROM_P         lhd_safe_from_p
+#define LANG_HOOKS_STATICP             lhd_staticp
 #define LANG_HOOKS_HONOR_READONLY      false
 #define LANG_HOOKS_PRINT_STATISTICS    lhd_do_nothing
 #define LANG_HOOKS_PRINT_XNODE         lhd_print_tree_nothing
@@ -132,6 +134,7 @@ int lhd_tree_dump_type_quals                        PARAMS ((tree));
   LANG_HOOKS_GET_ALIAS_SET, \
   LANG_HOOKS_EXPAND_CONSTANT, \
   LANG_HOOKS_SAFE_FROM_P, \
+  LANG_HOOKS_STATICP, \
   LANG_HOOKS_HONOR_READONLY, \
   LANG_HOOKS_PRINT_STATISTICS, \
   LANG_HOOKS_PRINT_XNODE, \
index 8ae3055d2682e6d3c5d0124f7aef3ccbd1c2fa22..5e0098680e35e8508d2aed251c395c4f84d6d5d1 100644 (file)
@@ -77,6 +77,15 @@ lhd_safe_from_p (x, exp)
   return 1;
 }
 
+/* Called from staticp.  */
+
+int
+lhd_staticp (exp)
+     tree exp;
+{
+  return 0;
+}
+
 /* Called when -dy is given on the command line.  */
 
 void
index 0519d21bbfe8b4a82bfa997af0ca99d8ba392639..8ce5674ebe9d5c4fe1ca8f2e03493d090c8fcdc9 100644 (file)
@@ -123,6 +123,9 @@ struct lang_hooks
      parameter.  */
   int (*safe_from_p) PARAMS ((rtx, tree));
 
+  /* Hook called by staticp for language-specific tree codes.  */
+  int (*staticp) PARAMS ((tree));
+
   /* Nonzero if TYPE_READONLY and TREE_READONLY should always be honored.  */
   bool honor_readonly;
 
index 5cbf59c5cba8751233ed12c63995947386bf79c9..c21f9132211161ff928e7d61e60be43f2fa9b36d 100644 (file)
@@ -1518,7 +1518,11 @@ staticp (arg)
        return staticp (TREE_OPERAND (arg, 0));
 
     default:
-      return 0;
+      if ((unsigned int) TREE_CODE (arg)
+         >= (unsigned int) LAST_AND_UNUSED_TREE_CODE)
+       return (*lang_hooks.staticp) (arg);
+      else
+       return 0;
     }
 }
 \f