diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-06-04 13:21:38 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-06-04 09:21:38 -0400 |
commit | b4e3fabb4d782befffdfc0694e9e2aa7c49cef07 (patch) | |
tree | e79ce033c0250b6636b696185f9b705119768656 /gcc/tree.c | |
parent | c7d468e6983d3562c3641d4a0f35a44c8617ab05 (diff) | |
download | gcc-b4e3fabb4d782befffdfc0694e9e2aa7c49cef07.zip gcc-b4e3fabb4d782befffdfc0694e9e2aa7c49cef07.tar.gz gcc-b4e3fabb4d782befffdfc0694e9e2aa7c49cef07.tar.bz2 |
tree.def (ARRAY_RANGE_REF): New code.
* tree.def (ARRAY_RANGE_REF): New code.
* alias.c (handled_component_p, can_address_p): Handle it.
* dwarf2out.c (loc_descriptor_from_tree): Likewise.
* explow.c (set_mem_attributes): Likewise.
* expr.c (expand_assignment, get_inner_reference): Likewise.
(expand_expr, expand_expr_unaligned, do_jump): Likewise.
* fold-const.c (operand_equal_p): Likewise.
* tree.c (staticp, stabilize_reference): Likewise.
* varasm.c (decode_addr_const): Likewise.
From-SVN: r42848
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -1518,6 +1518,7 @@ staticp (arg) #endif case ARRAY_REF: + case ARRAY_RANGE_REF: if (TREE_CODE (TYPE_SIZE (TREE_TYPE (arg))) == INTEGER_CST && TREE_CODE (TREE_OPERAND (arg, 1)) == INTEGER_CST) return staticp (TREE_OPERAND (arg, 0)); @@ -2209,6 +2210,12 @@ stabilize_reference (ref) stabilize_reference_1 (TREE_OPERAND (ref, 1))); break; + case ARRAY_RANGE_REF: + result = build_nt (ARRAY_RANGE_REF, + stabilize_reference (TREE_OPERAND (ref, 0)), + stabilize_reference_1 (TREE_OPERAND (ref, 1))); + break; + case COMPOUND_EXPR: /* We cannot wrap the first expression in a SAVE_EXPR, as then it wouldn't be ignored. This matters when dealing with |