summaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@gmail.com>2007-01-01 13:58:19 -0800
committerAndrew Pinski <pinskia@gcc.gnu.org>2007-01-01 13:58:19 -0800
commita441d616bac764a9281f72f04812ff9518a7e5ce (patch)
treecbad9e8ca49c7cbc6580372a73e4a91a61c54c7c /gcc/gimplify.c
parent95e2a53bfc973093444255c95bb79df8ff124f18 (diff)
downloadgcc-a441d616bac764a9281f72f04812ff9518a7e5ce.tar.gz
gimplify.c (gimplify_return_expr): Make the temporary variable for the return expression, a gimple register variable.
2007-01-01 Andrew Pinski <pinskia@gmail.com> * gimplify.c (gimplify_return_expr): Make the temporary variable for the return expression, a gimple register variable. From-SVN: r120317
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 97745309e98..1a40e8fe214 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -1,6 +1,7 @@
/* Tree lowering pass. This pass converts the GENERIC functions-as-trees
tree representation into the GIMPLE form.
- Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
Major work done by Sebastian Pop <s.pop@laposte.net>,
Diego Novillo <dnovillo@redhat.com> and Jason Merrill <jason@redhat.com>.
@@ -1171,6 +1172,9 @@ gimplify_return_expr (tree stmt, tree *pre_p)
else
{
result = create_tmp_var (TREE_TYPE (result_decl), NULL);
+ if (TREE_CODE (TREE_TYPE (result)) == COMPLEX_TYPE
+ || TREE_CODE (TREE_TYPE (result)) == VECTOR_TYPE)
+ DECL_GIMPLE_REG_P (result) = 1;
/* ??? With complex control flow (usually involving abnormal edges),
we can wind up warning about an uninitialized value for this. Due