From: Richard Guenther Date: Fri, 22 Apr 2011 19:29:54 +0000 (+0000) Subject: tree.c (build_int_cst): Properly create canonicalized integer constants. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1df5b0db1cc49d434c5d1ac2dc6a71daf0066d0e;p=gcc.git tree.c (build_int_cst): Properly create canonicalized integer constants. 2011-04-22 Richard Guenther * tree.c (build_int_cst): Properly create canonicalized integer constants. (build_int_cst_type): Remove scary comments. From-SVN: r172871 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b334e323170..f837af9259d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-04-22 Richard Guenther + + * tree.c (build_int_cst): Properly create canonicalized integer + constants. + (build_int_cst_type): Remove scary comments. + 2011-04-22 Xinliang David Li * toplev.c (process_options): Enable -Werror=coverage-mismatch diff --git a/gcc/tree.c b/gcc/tree.c index b37b7f8a446..6f93fb16336 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -1004,7 +1004,7 @@ copy_list (tree list) } -/* Create an INT_CST node with a LOW value sign extended. */ +/* Create an INT_CST node with a LOW value sign extended to TYPE. */ tree build_int_cst (tree type, HOST_WIDE_INT low) @@ -1013,17 +1013,10 @@ build_int_cst (tree type, HOST_WIDE_INT low) if (!type) type = integer_type_node; - return build_int_cst_wide (type, low, low < 0 ? -1 : 0); + return double_int_to_tree (type, shwi_to_double_int (low)); } -/* Create an INT_CST node with a LOW value in TYPE. The value is sign extended - if it is negative. This function is similar to build_int_cst, but - the extra bits outside of the type precision are cleared. Constants - with these extra bits may confuse the fold so that it detects overflows - even in cases when they do not occur, and in general should be avoided. - We cannot however make this a default behavior of build_int_cst without - more intrusive changes, since there are parts of gcc that rely on the extra - precision of the integer constants. */ +/* Create an INT_CST node with a LOW value sign extended to TYPE. */ tree build_int_cst_type (tree type, HOST_WIDE_INT low)