diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2004-04-05 12:25:26 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2004-04-05 08:25:26 -0400 |
commit | 4f976745b7f4deeed63381e21990fd2a2c2e2103 (patch) | |
tree | 7cf8c66a6e9e97bafc971ed6abd2828df8113d1e /gcc/emit-rtl.c | |
parent | 5ffc47306c2e13f9d65d98f2a6fd3ea277945ce5 (diff) | |
download | gcc-4f976745b7f4deeed63381e21990fd2a2c2e2103.zip gcc-4f976745b7f4deeed63381e21990fd2a2c2e2103.tar.gz gcc-4f976745b7f4deeed63381e21990fd2a2c2e2103.tar.bz2 |
c-decl.c (build_compound_literal): Use TYPE_READONLY.
* c-decl.c (build_compound_literal): Use TYPE_READONLY.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
* objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
* c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
PARM_DECL.
* calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
for a type.
* print-tree.c (print_node): Properly handle side-effects, readonly,
and constant flags.
* tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
and TREE_CONSTANT if not a type.
* tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
(IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
(NON_TYPE_CHECK): New macro.
(TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
* cp/init.c (decl_constant_value): Don't look at DECL_INITIAL
of PARM_DECL.
* cp/tree.c (bot_manip, build_min): Don't look at TREE_CONSTANT
or TREE_SIDE_EFFECTS of a type.
* ada/decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
* ada/utils.c (create_field_decl): Likewise.
* ada/utils2.c (build_unary_op, gnat_build_constructor): Likewise.
From-SVN: r80430
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 399bf23..9a5533c 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1504,7 +1504,7 @@ set_mem_attributes_minus_bitpos (rtx ref, tree t, int objectp, MEM_IN_STRUCT_P (ref) = AGGREGATE_TYPE_P (type); RTX_UNCHANGING_P (ref) |= ((lang_hooks.honor_readonly - && (TYPE_READONLY (type) || TREE_READONLY (t))) + && (TYPE_READONLY (type) || (t != type && TREE_READONLY (t)))) || (! TYPE_P (t) && TREE_CONSTANT (t))); MEM_POINTER (ref) = POINTER_TYPE_P (type); |