Commit d062a680 by Joseph Myers Committed by Joseph Myers

langhooks.h (struct lang_hooks): Add staticp.

	* 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
parent 69927b59
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> 2001-12-04 Neil Booth <neil@daikokuya.demon.co.uk>
* cppspec.c (lang_specific_driver): Set is_cpp_driver. * cppspec.c (lang_specific_driver): Set is_cpp_driver.
......
...@@ -42,6 +42,7 @@ extern int lhd_decode_option PARAMS ((int, char **)); ...@@ -42,6 +42,7 @@ extern int lhd_decode_option PARAMS ((int, char **));
extern HOST_WIDE_INT lhd_get_alias_set PARAMS ((tree)); extern HOST_WIDE_INT lhd_get_alias_set PARAMS ((tree));
extern tree lhd_return_tree PARAMS ((tree)); extern tree lhd_return_tree PARAMS ((tree));
extern int lhd_safe_from_p PARAMS ((rtx, 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_clear_binding_stack PARAMS ((void));
extern void lhd_print_tree_nothing PARAMS ((FILE *, tree, int)); extern void lhd_print_tree_nothing PARAMS ((FILE *, tree, int));
extern void lhd_set_yydebug PARAMS ((int)); extern void lhd_set_yydebug PARAMS ((int));
...@@ -71,6 +72,7 @@ int lhd_tree_inlining_anon_aggr_type_p PARAMS ((tree)); ...@@ -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_GET_ALIAS_SET lhd_get_alias_set
#define LANG_HOOKS_EXPAND_CONSTANT lhd_return_tree #define LANG_HOOKS_EXPAND_CONSTANT lhd_return_tree
#define LANG_HOOKS_SAFE_FROM_P lhd_safe_from_p #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_HONOR_READONLY false
#define LANG_HOOKS_PRINT_STATISTICS lhd_do_nothing #define LANG_HOOKS_PRINT_STATISTICS lhd_do_nothing
#define LANG_HOOKS_PRINT_XNODE lhd_print_tree_nothing #define LANG_HOOKS_PRINT_XNODE lhd_print_tree_nothing
...@@ -132,6 +134,7 @@ int lhd_tree_dump_type_quals PARAMS ((tree)); ...@@ -132,6 +134,7 @@ int lhd_tree_dump_type_quals PARAMS ((tree));
LANG_HOOKS_GET_ALIAS_SET, \ LANG_HOOKS_GET_ALIAS_SET, \
LANG_HOOKS_EXPAND_CONSTANT, \ LANG_HOOKS_EXPAND_CONSTANT, \
LANG_HOOKS_SAFE_FROM_P, \ LANG_HOOKS_SAFE_FROM_P, \
LANG_HOOKS_STATICP, \
LANG_HOOKS_HONOR_READONLY, \ LANG_HOOKS_HONOR_READONLY, \
LANG_HOOKS_PRINT_STATISTICS, \ LANG_HOOKS_PRINT_STATISTICS, \
LANG_HOOKS_PRINT_XNODE, \ LANG_HOOKS_PRINT_XNODE, \
......
...@@ -77,6 +77,15 @@ lhd_safe_from_p (x, exp) ...@@ -77,6 +77,15 @@ lhd_safe_from_p (x, exp)
return 1; return 1;
} }
/* Called from staticp. */
int
lhd_staticp (exp)
tree exp;
{
return 0;
}
/* Called when -dy is given on the command line. */ /* Called when -dy is given on the command line. */
void void
......
...@@ -123,6 +123,9 @@ struct lang_hooks ...@@ -123,6 +123,9 @@ struct lang_hooks
parameter. */ parameter. */
int (*safe_from_p) PARAMS ((rtx, tree)); 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. */ /* Nonzero if TYPE_READONLY and TREE_READONLY should always be honored. */
bool honor_readonly; bool honor_readonly;
......
...@@ -1518,7 +1518,11 @@ staticp (arg) ...@@ -1518,7 +1518,11 @@ staticp (arg)
return staticp (TREE_OPERAND (arg, 0)); return staticp (TREE_OPERAND (arg, 0));
default: default:
return 0; if ((unsigned int) TREE_CODE (arg)
>= (unsigned int) LAST_AND_UNUSED_TREE_CODE)
return (*lang_hooks.staticp) (arg);
else
return 0;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment