aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2000-10-06 14:59:56 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2000-10-06 14:59:56 +0000
commitc70eaeafa005e95e565806c8c9b30e54c8e8642f (patch)
tree44773ff39d77f5a3d3e0a42bcc8277bd1b19a1bb /gcc/expr.c
parentf299afab9b5479f9eaf8628dde4db4e5403aa9a6 (diff)
downloadgcc-c70eaeafa005e95e565806c8c9b30e54c8e8642f.zip
gcc-c70eaeafa005e95e565806c8c9b30e54c8e8642f.tar.gz
gcc-c70eaeafa005e95e565806c8c9b30e54c8e8642f.tar.bz2
builtins.c (is_valid_printf_arglist, [...]): Move functions from here ...
* 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. From-SVN: r36758
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index ee68dff..c36d61f 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. */