This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/48335] [4.6/4.7 Regression] ICE in convert_move
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 30 Mar 2011 10:05:24 +0000
- Subject: [Bug middle-end/48335] [4.6/4.7 Regression] ICE in convert_move
- Auto-submitted: auto-generated
- References: <bug-48335-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48335
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-03-30 10:05:13 UTC ---
A patch that might fix most of the issues could also be
Index: gcc/tree-ssa.c
===================================================================
--- gcc/tree-ssa.c (revision 171716)
+++ gcc/tree-ssa.c (working copy)
@@ -1976,7 +1976,8 @@ maybe_optimize_var (tree var, bitmap add
/* Do not change TREE_ADDRESSABLE if we need to preserve var as
a non-register. Otherwise we are confused and forget to
add virtual operands for it. */
- && (!is_gimple_reg_type (TREE_TYPE (var))
+ && ((!is_gimple_reg_type (TREE_TYPE (var))
+ && TYPE_MODE (TREE_TYPE (var)) == BLKmode)
|| !bitmap_bit_p (not_reg_needs, DECL_UID (var))))
{
TREE_ADDRESSABLE (var) = 0;
pessimizing tree alias analysis (but only to be as bad as 4.5, maybe
a little worse for register types with components (vectors and complex vars)).