http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41159
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | --- Comment #19 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-12-20 10:58:47 UTC --- Mine. The issue is that we are on a PROMOTE_MODE target and with !optimize expand SSA names to stack slots: var = SSA_NAME_VAR (partition_to_var (SA.map, dest)); src_mode = TYPE_MODE (TREE_TYPE (src)); dest_mode = promote_decl_mode (var, &unsignedp); gcc_assert (src_mode == TYPE_MODE (TREE_TYPE (var))); gcc_assert (dest_mode == GET_MODE (SA.partition_to_pseudo[dest])); (gdb) call debug_tree (var) <var_decl 0x7ffff5a2b320 i type <integer_type 0x7ffff5a2e5e8 int public SI ... (gdb) p SA.partition_to_pseudo[dest] $2 = (rtx) 0x7ffff5ad4c78 (gdb) call debug_rtx ($2) (mem/c/i:SI (plus:DI (reg/f:DI 65 virtual-stack-vars) (const_int 4 [0x4])) [0 i+0 S4 A32]) (gdb) p dest_mode $1 = DImode but we cannot deal with stack temporaries. I have a patch.