------- Comment #4 from jamborm at gcc dot gnu dot org 2009-11-27 18:46 ------- I have started a bootstrap and check of the following (with a testcase and change log and stuff...) which for some reason fixes this (renaming introduces the mess, the code as is generated by IPA-SRA is OK):
Index: mine/gcc/tree-sra.c =================================================================== --- mine.orig/gcc/tree-sra.c +++ mine/gcc/tree-sra.c @@ -3478,7 +3478,10 @@ get_replaced_param_substitute (struct ip { char *pretty_name = make_fancy_name (adj->base); - repl = make_rename_temp (TREE_TYPE (adj->base), "ISR"); + repl = create_tmp_var (TREE_TYPE (adj->base), "ISR"); + if (TREE_CODE (TREE_TYPE (repl)) == COMPLEX_TYPE + || TREE_CODE (TREE_TYPE (repl)) == VECTOR_TYPE) + DECL_GIMPLE_REG_P (repl) = 1; DECL_NAME (repl) = get_identifier (pretty_name); obstack_free (&name_obstack, pretty_name); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42006