Commit c53153e7 by Jan Hubicka Committed by Jason Merrill

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
parent 7aeb037b
2012-01-16 Jan Hubicka <jh@suse.cz>
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 <jason@redhat.com> 2012-01-16 Jason Merrill <jason@redhat.com>
PR c++/14179 PR c++/14179
......
...@@ -860,6 +860,10 @@ convert_to_integer (tree type, tree expr) ...@@ -860,6 +860,10 @@ convert_to_integer (tree type, tree expr)
break; 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); return build1 (CONVERT_EXPR, type, expr);
case REAL_TYPE: case REAL_TYPE:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment