OSDN Git Service

PR tree-opt/24365
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 12 Feb 2006 08:01:04 +0000 (08:01 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 12 Feb 2006 08:01:04 +0000 (08:01 +0000)
        * tree-inline.c (declare_return_variable): Just don't use the
        modify target if it's a gimple complex reg and the return slot
        isn't.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110888 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-inline.c

index b6bd762..095c6d6 100644 (file)
@@ -1,3 +1,10 @@
+2006-02-11  Jason Merrill  <jason@redhat.com>
+
+       PR tree-opt/24365
+       * tree-inline.c (declare_return_variable): Just don't use the
+       modify target if it's a gimple complex reg and the return slot
+       isn't.
+
 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * doc/contrib.texi: Update my entry.
index 81682c8..8d258ff 100644 (file)
@@ -1222,9 +1222,10 @@ declare_return_variable (copy_body_data *id, tree return_slot_addr,
            use_it = false;
          else if (is_global_var (base_m))
            use_it = false;
-         else if (TREE_CODE (TREE_TYPE (base_m)) == COMPLEX_TYPE
-                  && !DECL_COMPLEX_GIMPLE_REG_P (result))
-           DECL_COMPLEX_GIMPLE_REG_P (base_m) = 0;
+         else if (TREE_CODE (TREE_TYPE (result)) == COMPLEX_TYPE
+                  && !DECL_COMPLEX_GIMPLE_REG_P (result)
+                  && DECL_COMPLEX_GIMPLE_REG_P (base_m))
+           use_it = false;
          else if (!TREE_ADDRESSABLE (base_m))
            use_it = true;
        }