From: Richard Kenner Date: Tue, 22 Nov 1994 22:40:46 +0000 (-0500) Subject: (fold_convert): Don't fold conversion if it would produce constant X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e33745253e33bdb3cfdaa0608bf8d1f9f6422abf;p=gcc.git (fold_convert): Don't fold conversion if it would produce constant larger than we can support. From-SVN: r8551 --- 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),