From: Richard Kenner Date: Fri, 15 Jun 2001 22:08:42 +0000 (+0000) Subject: * function.c (gen_mem_addressof): Handle case where DECL is SAVE_EXPR. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b927dc22376b479fd49cc5488d6adc347c05a738;p=gcc.git * function.c (gen_mem_addressof): Handle case where DECL is SAVE_EXPR. From-SVN: r43408 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 639c3fa3d9e..b0704674fa5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ Fri Jun 15 18:05:22 2001 Richard Kenner + * function.c (gen_mem_addressof): Handle case where DECL is SAVE_EXPR. + * explow.c (expr_size): If DECL and size specified, use it. 2001-06-15 Zack Weinberg diff --git a/gcc/function.c b/gcc/function.c index cdfe697b784..2e493f32efd 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -2873,8 +2873,11 @@ gen_mem_addressof (reg, decl) if (decl) { tree type = TREE_TYPE (decl); + enum machine_mode decl_mode + = (TREE_CODE (decl) == SAVE_EXPR ? TYPE_MODE (TREE_TYPE (decl)) + : DECL_MODE (decl)); - PUT_MODE (reg, DECL_MODE (decl)); + PUT_MODE (reg, decl_mode); MEM_VOLATILE_P (reg) = TREE_SIDE_EFFECTS (decl); MEM_SET_IN_STRUCT_P (reg, AGGREGATE_TYPE_P (type)); MEM_ALIAS_SET (reg) = get_alias_set (decl);