diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-06-15 22:08:42 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-06-15 18:08:42 -0400 |
commit | b927dc22376b479fd49cc5488d6adc347c05a738 (patch) | |
tree | e331f7ff1aa0108162768b18f93bd570fa838f40 /gcc/function.c | |
parent | f6261a8a6fdda7ea84b9d1ae025f57721230f21f (diff) | |
download | gcc-b927dc22376b479fd49cc5488d6adc347c05a738.zip gcc-b927dc22376b479fd49cc5488d6adc347c05a738.tar.gz gcc-b927dc22376b479fd49cc5488d6adc347c05a738.tar.bz2 |
* function.c (gen_mem_addressof): Handle case where DECL is SAVE_EXPR.
From-SVN: r43408
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/function.c b/gcc/function.c index cdfe697b..2e493f3 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); |