summaryrefslogtreecommitdiffstats
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-09 09:54:36 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-09 09:54:36 +0000
commitcf6b103ecba3ec845e82cac95ce2693954438eec (patch)
tree2e7796711ab7dc7b1bc13550933b9b8d077c098e /gcc/tree-inline.c
parentf7bac623609f2c8ed2dbebebe91001b675a035e1 (diff)
downloadppe42-gcc-cf6b103ecba3ec845e82cac95ce2693954438eec.tar.gz
ppe42-gcc-cf6b103ecba3ec845e82cac95ce2693954438eec.zip
PR c++/25979
* tree.def: Elaborate on difference from MODIFY_EXPR. * doc/c-tree.texi (INIT_EXPR): Likewise. * gimplify.c (internal_get_tmp_var): Use INIT_EXPR. (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise. (gimplify_target_expr): Likewise. (gimplify_cond_expr): Remove target handling. (gimplify_modify_expr): Don't clobber INIT_EXPR code here. (gimplify_expr): Clobber it here. (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here. Do return slot optimization if we have an INIT_EXPR. PR tree-opt/24365 * tree-inline.c (declare_return_variable): Also clear DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case. PR c++/16405 * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling. PR middle-end/22439 * gimplify.c (gimplify_one_sizepos): Fix typo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110789 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 07085b104b1..f9ce09bbe35 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -1222,6 +1222,9 @@ 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_ADDRESSABLE (base_m))
use_it = true;
}
OpenPOWER on IntegriCloud