From ac50176d22e5a67355cde8740a2acac344c0e35d Mon Sep 17 00:00:00 2001
From: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
Date: Fri, 23 Feb 2001 21:05:41 +0000
Subject: [PATCH] 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
---
 gcc/ChangeLog    | 3 +++
 gcc/fold-const.c | 1 +
 2 files changed, 4 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ddce687a3bba..a89be706dc20 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 99a602cd297f..69b99206802d 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);
 
-- 
GitLab