diff options
author | ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-06 14:59:56 +0000 |
---|---|---|
committer | ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-06 14:59:56 +0000 |
commit | edbbe5cad94187b9443ace78a83d27ae0719d75e (patch) | |
tree | 44773ff39d77f5a3d3e0a42bcc8277bd1b19a1bb /gcc/expr.c | |
parent | 5f19af7a5d83030760b500b44966f4399d0cb783 (diff) | |
download | gcc-edbbe5cad94187b9443ace78a83d27ae0719d75e.tar.gz |
* builtins.c (is_valid_printf_arglist, expand_builtin_printf):
Move functions from here ...
* c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
... to here.
(c_expand_builtin): New function.
(init_function_format_info): Don't set `check_function_format_ptr'.
(c_common_nodes_and_builtins): Set built_in_class type for
printf/__builtin_printf to BUILT_IN_FRONTEND.
(c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
* c-common.h (build_function_call): Declare.
* expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
to `lang_expand_expr' rather than `expand_builtin'.
* tree.c (check_function_format_ptr): Delete.
* tree.h (check_function_format_ptr): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36758 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index ee68dff23ed..c36d61fcb96 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -7163,7 +7163,13 @@ expand_expr (exp, target, tmode, modifier) && (TREE_CODE (TREE_OPERAND (TREE_OPERAND (exp, 0), 0)) == FUNCTION_DECL) && DECL_BUILT_IN (TREE_OPERAND (TREE_OPERAND (exp, 0), 0))) - return expand_builtin (exp, target, subtarget, tmode, ignore); + { + if (DECL_BUILT_IN_CLASS (TREE_OPERAND (TREE_OPERAND (exp, 0), 0)) + == BUILT_IN_FRONTEND) + return (*lang_expand_expr) (exp, original_target, tmode, modifier); + else + return expand_builtin (exp, target, subtarget, tmode, ignore); + } /* If this call was expanded already by preexpand_calls, just return the result we got. */ |