Commit 83d865c5 by Andrew Haley Committed by Andrew Haley

tree.c (get_callee_fndecl): Call lang_hooks.lang_get_callee_fndecl.

2003-10-06  Andrew Haley  <aph@redhat.com>

	* tree.c (get_callee_fndecl): Call
	lang_hooks.lang_get_callee_fndecl.
	* langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New.
	(lhd_get_callee_fndecl): New.

From-SVN: r72150
parent 75f60443
2003-10-06 Andrew Haley <aph@redhat.com>
* tree.c (get_callee_fndecl): Call
lang_hooks.lang_get_callee_fndecl.
* langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New.
(lhd_get_callee_fndecl): New.
2003-10-06 Andrew Pinski <apinski@apple.com>
* config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
......
......@@ -67,6 +67,7 @@ extern void lhd_register_builtin_type (tree, const char *);
extern bool lhd_decl_ok_for_sibcall (tree);
extern tree lhd_expr_size (tree);
extern bool lhd_decl_uninit (tree);
extern tree lhd_get_callee_fndecl (tree);
extern size_t lhd_tree_size (enum tree_code);
/* Declarations of default tree inlining hooks. */
......@@ -119,6 +120,7 @@ extern tree lhd_callgraph_analyze_expr (tree *, int *, tree);
#define LANG_HOOKS_PRINT_IDENTIFIER lhd_print_tree_nothing
#define LANG_HOOKS_PRINT_ERROR_FUNCTION lhd_print_error_function
#define LANG_HOOKS_DECL_PRINTABLE_NAME lhd_decl_printable_name
#define LANG_HOOKS_GET_CALLEE_FNDECL lhd_return_null_tree
#define LANG_HOOKS_EXPR_SIZE lhd_expr_size
#define LANG_HOOKS_DECL_UNINIT lhd_decl_uninit
#define LANG_HOOKS_TREE_SIZE lhd_tree_size
......@@ -297,6 +299,7 @@ extern int lhd_tree_dump_type_quals (tree);
LANG_HOOKS_PRINT_TYPE, \
LANG_HOOKS_PRINT_IDENTIFIER, \
LANG_HOOKS_DECL_PRINTABLE_NAME, \
LANG_HOOKS_GET_CALLEE_FNDECL, \
LANG_HOOKS_PRINT_ERROR_FUNCTION, \
LANG_HOOKS_EXPR_SIZE, \
LANG_HOOKS_DECL_UNINIT, \
......
......@@ -378,6 +378,9 @@ struct lang_hooks
types in C++. */
const char *(*decl_printable_name) (tree decl, int verbosity);
/* Given a CALL_EXPR, return a function decl that is its target. */
tree (*lang_get_callee_fndecl) (tree);
/* Called by report_error_function to print out function name. */
void (*print_error_function) (struct diagnostic_context *, const char *);
......
......@@ -4449,9 +4449,10 @@ get_callee_fndecl (tree call)
if (TREE_CODE (addr) == ADDR_EXPR
&& TREE_CODE (TREE_OPERAND (addr, 0)) == FUNCTION_DECL)
return TREE_OPERAND (addr, 0);
/* We couldn't figure out what was being called. */
return NULL_TREE;
/* We couldn't figure out what was being called. Maybe the front
end has some idea. */
return (*lang_hooks.lang_get_callee_fndecl) (call);
}
/* Print debugging information about tree nodes generated during the compile,
......
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