diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2000-10-06 14:59:56 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2000-10-06 14:59:56 +0000 |
commit | c70eaeafa005e95e565806c8c9b30e54c8e8642f (patch) | |
tree | 44773ff39d77f5a3d3e0a42bcc8277bd1b19a1bb /gcc/expr.c | |
parent | f299afab9b5479f9eaf8628dde4db4e5403aa9a6 (diff) | |
download | gcc-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.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -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. */ |