aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-06-01 23:45:34 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2011-06-01 23:45:34 +0200
commit88c158217c256ee61beca5b39b4c58f3ecfb4da2 (patch)
treee668a40a77b2c40250c0061e35a79cf35a0aee41 /gcc
parentcd2c00bef35a04a929de9405d50a6c94ff88b8fc (diff)
downloadgcc-88c158217c256ee61beca5b39b4c58f3ecfb4da2.zip
gcc-88c158217c256ee61beca5b39b4c58f3ecfb4da2.tar.gz
gcc-88c158217c256ee61beca5b39b4c58f3ecfb4da2.tar.bz2
re PR debug/49250 (ICE in set_slot_part, at var-tracking.c:6793)
PR debug/49250 * var-tracking.c (add_uses, add_stores): Don't call cselib_subst_to_values on ENTRY_VALUE. From-SVN: r174548
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/var-tracking.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 148a530..6483324 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/49250
+ * var-tracking.c (add_uses, add_stores): Don't call
+ cselib_subst_to_values on ENTRY_VALUE.
+
2011-06-01 Diego Novillo <dnovillo@google.com>
* lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index db261c0..9823014 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -5052,6 +5052,7 @@ add_uses (rtx *ploc, void *data)
if (MEM_P (vloc)
&& !REG_P (XEXP (vloc, 0))
&& !MEM_P (XEXP (vloc, 0))
+ && GET_CODE (XEXP (vloc, 0)) != ENTRY_VALUE
&& (GET_CODE (XEXP (vloc, 0)) != PLUS
|| XEXP (XEXP (vloc, 0), 0) != cfa_base_rtx
|| !CONST_INT_P (XEXP (XEXP (vloc, 0), 1))))
@@ -5130,6 +5131,7 @@ add_uses (rtx *ploc, void *data)
if (MEM_P (oloc)
&& !REG_P (XEXP (oloc, 0))
&& !MEM_P (XEXP (oloc, 0))
+ && GET_CODE (XEXP (oloc, 0)) != ENTRY_VALUE
&& (GET_CODE (XEXP (oloc, 0)) != PLUS
|| XEXP (XEXP (oloc, 0), 0) != cfa_base_rtx
|| !CONST_INT_P (XEXP (XEXP (oloc, 0), 1))))
@@ -5383,6 +5385,7 @@ add_stores (rtx loc, const_rtx expr, void *cuip)
if (MEM_P (loc) && type == MO_VAL_SET
&& !REG_P (XEXP (loc, 0))
&& !MEM_P (XEXP (loc, 0))
+ && GET_CODE (XEXP (loc, 0)) != ENTRY_VALUE
&& (GET_CODE (XEXP (loc, 0)) != PLUS
|| XEXP (XEXP (loc, 0), 0) != cfa_base_rtx
|| !CONST_INT_P (XEXP (XEXP (loc, 0), 1))))