diff options
| author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-11 18:14:48 +0000 |
|---|---|---|
| committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-11 18:14:48 +0000 |
| commit | db97ad4157917ee22e26683eac93acea1f2b8cea (patch) | |
| tree | 8ae61f65db968c0c276e91209918fc11f50b63e4 /gcc/builtins.c | |
| parent | 504d3463155888e30ae12775390b578c7723a827 (diff) | |
| download | ppe42-gcc-db97ad4157917ee22e26683eac93acea1f2b8cea.tar.gz ppe42-gcc-db97ad4157917ee22e26683eac93acea1f2b8cea.zip | |
* builtins.c (fold_builtin_fputs): Don't bother converting the
return type to integer_type_node, as we've already checked that
the result will be ignored.
* tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
that signed addition, subtraction, multiplication, division,
remainder, negation and absolute value may potentially trap.
* fold-const.c (fold_ignored_result): New function to strip
non-side-effecting tree nodes from an expression whose result
is ignored.
(fold_convert): Call fold_ignored_result when casting a value
to VOID_TYPE.
(omit_one_operand): Call fold_ignored_result on the "omitted"
operand when building a COMPOUND_EXPR.
(pedantic_omit_one_operand): Likewise.
* tree.h (fold_ignored_result): Prototype here.
* tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
when we're going to ignore the result.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84525 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/builtins.c')
| -rw-r--r-- | gcc/builtins.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 02fdc929b41..5b2a63ff942 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -9474,8 +9474,9 @@ fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len) abort (); } - return fold_convert (integer_type_node, - build_function_call_expr (fn, arglist)); + /* These optimizations are only performed when the result is ignored, + hence there's no need to cast the result to integer_type_node. */ + return build_function_call_expr (fn, arglist); } static void |

