diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-11 14:56:39 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-11 14:56:39 +0000 |
commit | b93508c0ab051d8b35dc1039bc9df575dbbbc9ce (patch) | |
tree | 86d760319c5f684bb65a7955d36c6b9540156771 /gcc/emit-rtl.c | |
parent | eb4086077ed1095c11612536c3ab490b7516befb (diff) | |
download | gcc-b93508c0ab051d8b35dc1039bc9df575dbbbc9ce.tar.gz |
* tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
TREE_THIS_NOTRAP when appropriate.
(get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new
VAR_DECL.
* gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
newly created MEM_REF.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165313 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 3115523fb8c..01dd70ab567 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1660,7 +1660,11 @@ set_mem_attributes_minus_bitpos (rtx ref, tree t, int objectp, else MEM_NOTRAP_P (ref) = 1; } - else + else if (TREE_CODE (base) == INDIRECT_REF + || TREE_CODE (base) == MEM_REF + || TREE_CODE (base) == TARGET_MEM_REF + || TREE_CODE (base) == ARRAY_REF + || TREE_CODE (base) == ARRAY_RANGE_REF) MEM_NOTRAP_P (ref) = TREE_THIS_NOTRAP (base); base = get_base_address (base); @@ -2236,7 +2240,6 @@ get_spill_slot_decl (bool force_build_p) DECL_ARTIFICIAL (d) = 1; DECL_IGNORED_P (d) = 1; TREE_USED (d) = 1; - TREE_THIS_NOTRAP (d) = 1; spill_slot_decl = d; rd = gen_rtx_MEM (BLKmode, frame_pointer_rtx); |