aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-02-23 21:05:41 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-02-23 16:05:41 -0500
commitac50176d22e5a67355cde8740a2acac344c0e35d (patch)
tree514f53534b6c0dd96e972859d9734115364355ba
parent9b58f7398639e201117b4f8131d0d2c92f4c6a52 (diff)
downloadgcc-ac50176d22e5a67355cde8740a2acac344c0e35d.zip
gcc-ac50176d22e5a67355cde8740a2acac344c0e35d.tar.gz
gcc-ac50176d22e5a67355cde8740a2acac344c0e35d.tar.bz2
fold-const.c (fold_convert): Don't call size_int_type_wide if input overflows.
* fold-const.c (fold_convert): Don't call size_int_type_wide if input overflows. From-SVN: r40012
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/fold-const.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ddce687..a89be70 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Fri Feb 23 15:28:39 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ * fold-const.c (fold_convert): Don't call size_int_type_wide if
+ input overflows.
+
* c-decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
* varasm.c (output_constant): Recompute CODE after lang-specific fn.
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 99a602cd..69b9920 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -2022,6 +2022,7 @@ fold_convert (t, arg1)
/* If we are trying to make a sizetype for a small integer, use
size_int to pick up cached types to reduce duplicate nodes. */
if (TREE_CODE (type) == INTEGER_TYPE && TYPE_IS_SIZETYPE (type)
+ && !TREE_CONSTANT_OVERFLOW (arg1)
&& compare_tree_int (arg1, 10000) < 0)
return size_int_type_wide (TREE_INT_CST_LOW (arg1), type);