------- Comment #17 from rguenth at gcc dot gnu dot org 2010-09-19 11:10 ------- Ah. The following fixes it for me on a cross. Can you bootstrap & regtest and install it? It's pre-approved if it works for you.
Thanks. Index: gcc/function.c =================================================================== --- gcc/function.c (revision 164396) +++ gcc/function.c (working copy) @@ -3578,7 +3578,7 @@ gimplify_parameters (void) && compare_tree_int (DECL_SIZE_UNIT (parm), STACK_CHECK_MAX_VAR_SIZE) > 0)) { - local = create_tmp_var (type, get_name (parm)); + local = create_tmp_reg (type, get_name (parm)); DECL_IGNORED_P (local) = 0; /* If PARM was addressable, move that flag over to the local copy, as its address will be taken, @@ -3592,7 +3592,7 @@ gimplify_parameters (void) tree ptr_type, addr; ptr_type = build_pointer_type (type); - addr = create_tmp_var (ptr_type, get_name (parm)); + addr = create_tmp_reg (ptr_type, get_name (parm)); DECL_IGNORED_P (addr) = 0; local = build_fold_indirect_ref (addr); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43959