diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2010-10-14 13:39:18 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-10-14 13:39:18 +0000 |
commit | a61c3633ecd0b8392496674a28e8efcd0cec8ab9 (patch) | |
tree | 73e843d67156115387cd0f5f57159c563c46f468 /gcc/tree.c | |
parent | 8de2e8c95714a780903496db710adb4f2d6df310 (diff) | |
download | gcc-a61c3633ecd0b8392496674a28e8efcd0cec8ab9.zip gcc-a61c3633ecd0b8392496674a28e8efcd0cec8ab9.tar.gz gcc-a61c3633ecd0b8392496674a28e8efcd0cec8ab9.tar.bz2 |
sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke may_trap_or_fault_p instead of may_trap_p predicate.
* sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
may_trap_or_fault_p instead of may_trap_p predicate.
* tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
(substitute_placeholder_in_expr): Likewise.
* tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
flag on MEM_REF nodes.
(copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
flags on INDIRECT_REF nodes.
ada/
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set
TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
* gcc-interface/trans.c (Identifier_to_gnu): Set TREE_THIS_NOTRAP on
the INDIRECT_REF node built for objects used by reference.
* gcc-interface/utils2.c (build_binary_op): Add short-circuit for
constant result. Set TREE_THIS_NOTRAP on ARRAY_REF and ARRAY_RANGE_REF.
(gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.
From-SVN: r165468
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -3190,6 +3190,10 @@ substitute_in_expr (tree exp, tree f, tree r) } TREE_READONLY (new_tree) |= TREE_READONLY (exp); + + if (code == INDIRECT_REF || code == ARRAY_REF || code == ARRAY_RANGE_REF) + TREE_THIS_NOTRAP (new_tree) |= TREE_THIS_NOTRAP (exp); + return new_tree; } @@ -3357,6 +3361,10 @@ substitute_placeholder_in_expr (tree exp, tree obj) } TREE_READONLY (new_tree) |= TREE_READONLY (exp); + + if (code == INDIRECT_REF || code == ARRAY_REF || code == ARRAY_RANGE_REF) + TREE_THIS_NOTRAP (new_tree) |= TREE_THIS_NOTRAP (exp); + return new_tree; } |