aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2007-01-08 18:29:18 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2007-01-08 18:29:18 +0000
commit7fb41a42a9490e41b03fe1bcfe0d3903fd8c0372 (patch)
tree39d3113999a59bc49ff73a06408842ee861973fd /gcc/builtins.c
parent738a52d3e27cc81e337c3f57e845adc0dd666eaa (diff)
downloadgcc-7fb41a42a9490e41b03fe1bcfe0d3903fd8c0372.zip
gcc-7fb41a42a9490e41b03fe1bcfe0d3903fd8c0372.tar.gz
gcc-7fb41a42a9490e41b03fe1bcfe0d3903fd8c0372.tar.bz2
tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type of offset to build the index.
2007-01-08 Richard Guenther <rguenther@suse.de> * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type of offset to build the index. * tree-pretty-print.c (dump_generic_node): Don't build negated const just for printing. * c-pretty-print.c (pp_c_integer_constant): Likewise. * builtins.c (fold_builtin_int_roundingfn): Check if result fits the type by using force_fit_type and comparing the result. * predict.c (predict_loops): Use compare_tree_int for comparison. * tree.c (build_int_cst): Fall back to integer_type_node for NULL_TREE type. (build_int_cst_wide): Assert type is non-null. fortran/ * trans-io.c (transfer_array_desc): Use build_int_cst instead of build_int_cstu. From-SVN: r120586
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 6f79b29..e97e3bb 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -7602,9 +7602,11 @@ fold_builtin_int_roundingfn (tree fndecl, tree arglist)
}
REAL_VALUE_TO_INT (&lo, &hi, r);
- result = build_int_cst_wide (NULL_TREE, lo, hi);
- if (int_fits_type_p (result, itype))
- return fold_convert (itype, result);
+ result = build_int_cst_wide (itype, lo, hi);
+ result = force_fit_type (result, 0, false, false);
+ if (TREE_INT_CST_LOW (result) == lo
+ && TREE_INT_CST_HIGH (result) == hi)
+ return result;
}
}