From: Jan Hubicka Date: Mon, 16 Jan 2012 16:40:38 +0000 (+0100) Subject: re PR c/12245 (Uses lots of memory when compiling large initialized arrays) X-Git-Tag: releases/gcc-4.7.0~979 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c53153e7a099d3212a60912cd407abc04fb2610a;p=thirdparty%2Fgcc.git re PR c/12245 (Uses lots of memory when compiling large initialized arrays) PR c/12245 PR c++/14179 * convert.c (convert_to_integer): Use fold_convert for converting an INTEGER_CST to integer type. From-SVN: r183214 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd13d0bbc72a..9efdd70ddbf7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-01-16 Jan Hubicka + + PR c/12245 + PR c++/14179 + * convert.c (convert_to_integer): Use fold_convert for + converting an INTEGER_CST to integer type. + 2012-01-16 Jason Merrill PR c++/14179 diff --git a/gcc/convert.c b/gcc/convert.c index f04b20481946..dbe2c7eb32e9 100644 --- a/gcc/convert.c +++ b/gcc/convert.c @@ -860,6 +860,10 @@ convert_to_integer (tree type, tree expr) break; } + /* When parsing long initializers, we might end up with a lot of casts. + Shortcut this. */ + if (TREE_CODE (expr) == INTEGER_CST) + return fold_convert (type, expr); return build1 (CONVERT_EXPR, type, expr); case REAL_TYPE: