[Bug middle-end/42006] [4.5 Regression] Termination problem with -O2 and -O3

jamborm at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Nov 27 18:46:00 GMT 2009



------- 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



More information about the Gcc-bugs mailing list