From e33745253e33bdb3cfdaa0608bf8d1f9f6422abf Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 22 Nov 1994 17:40:46 -0500 Subject: [PATCH] (fold_convert): Don't fold conversion if it would produce constant larger than we can support. From-SVN: r8551 --- gcc/fold-const.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/fold-const.c b/gcc/fold-const.c index d286f278bd3..9b1a7b4775d 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -1404,6 +1404,11 @@ fold_convert (t, arg1) { if (TREE_CODE (arg1) == INTEGER_CST) { + /* If we would build a constant wider than GCC supports, + leave the conversion unfolded. */ + if (TYPE_PRECISION (type) > 2 * HOST_BITS_PER_WIDE_INT) + return t; + /* Given an integer constant, make new constant with new type, appropriately sign-extended or truncated. */ t = build_int_2 (TREE_INT_CST_LOW (arg1), -- 2.30.2