Commit 1df5b0db by Richard Guenther Committed by Richard Biener

tree.c (build_int_cst): Properly create canonicalized integer constants.

2011-04-22  Richard Guenther  <rguenther@suse.de>

	* tree.c (build_int_cst): Properly create canonicalized integer
	constants.
	(build_int_cst_type): Remove scary comments.

From-SVN: r172871
parent ae01169c
2011-04-22 Richard Guenther <rguenther@suse.de>
* tree.c (build_int_cst): Properly create canonicalized integer
constants.
(build_int_cst_type): Remove scary comments.
2011-04-22 Xinliang David Li <davidxl@google.com> 2011-04-22 Xinliang David Li <davidxl@google.com>
* toplev.c (process_options): Enable -Werror=coverage-mismatch * toplev.c (process_options): Enable -Werror=coverage-mismatch
......
...@@ -1004,7 +1004,7 @@ copy_list (tree list) ...@@ -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 tree
build_int_cst (tree type, HOST_WIDE_INT low) build_int_cst (tree type, HOST_WIDE_INT low)
...@@ -1013,17 +1013,10 @@ build_int_cst (tree type, HOST_WIDE_INT low) ...@@ -1013,17 +1013,10 @@ build_int_cst (tree type, HOST_WIDE_INT low)
if (!type) if (!type)
type = integer_type_node; 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 /* Create an INT_CST node with a LOW value sign extended to TYPE. */
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. */
tree tree
build_int_cst_type (tree type, HOST_WIDE_INT low) build_int_cst_type (tree type, HOST_WIDE_INT low)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment