summaryrefslogtreecommitdiffstats
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-11 18:14:48 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-11 18:14:48 +0000
commitdb97ad4157917ee22e26683eac93acea1f2b8cea (patch)
tree8ae61f65db968c0c276e91209918fc11f50b63e4 /gcc/builtins.c
parent504d3463155888e30ae12775390b578c7723a827 (diff)
downloadppe42-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.c5
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
OpenPOWER on IntegriCloud