aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-10-13 15:56:07 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2009-10-13 15:56:07 +0200
commite4fb38bd17c0df57ba0dde795cf31279e51e186c (patch)
treeee8539b8137186405c31fc7594e83afce4f4f338 /gcc
parentab6218f150a207398a27d1e8bbc0249ac8c03466 (diff)
downloadgcc-e4fb38bd17c0df57ba0dde795cf31279e51e186c.zip
gcc-e4fb38bd17c0df57ba0dde795cf31279e51e186c.tar.gz
gcc-e4fb38bd17c0df57ba0dde795cf31279e51e186c.tar.bz2
re PR target/41693 (RTL Check Failure in expand_debug_expr, at cfgexpand.c:2371)
PR target/41693 * rtl.h (DEBUG_EXPR_TREE_DECL): Define. * sched-vis.c (print_value): Use it. * cselib.c (cselib_hash_rtx): Likewise. * print-rtl.c (print_rtx): Likewise. * cfgexpand.c (expand_debug_rtx): Likewise. * var-tracking.c (vt_expand_loc_callback): Likewise. From-SVN: r152707
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/cfgexpand.c2
-rw-r--r--gcc/cselib.c3
-rw-r--r--gcc/print-rtl.c3
-rw-r--r--gcc/rtl.h3
-rw-r--r--gcc/sched-vis.c2
-rw-r--r--gcc/var-tracking.c2
7 files changed, 20 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d63029e..5556683 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2009-10-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/41693
+ * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
+ * sched-vis.c (print_value): Use it.
+ * cselib.c (cselib_hash_rtx): Likewise.
+ * print-rtl.c (print_rtx): Likewise.
+ * cfgexpand.c (expand_debug_rtx): Likewise.
+ * var-tracking.c (vt_expand_loc_callback): Likewise.
+
2009-10-13 Richard Guenther <rguenther@suse.de>
PR lto/41565
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 31832e7..6882954 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -2368,7 +2368,7 @@ expand_debug_expr (tree exp)
return op0;
op0 = gen_rtx_DEBUG_EXPR (mode);
- XTREE (op0, 0) = exp;
+ DEBUG_EXPR_TREE_DECL (op0) = exp;
SET_DECL_RTL (exp, op0);
return op0;
diff --git a/gcc/cselib.c b/gcc/cselib.c
index c26742d..2bf4662 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -705,7 +705,8 @@ cselib_hash_rtx (rtx x, int create)
return e->value;
case DEBUG_EXPR:
- hash += ((unsigned) DEBUG_EXPR << 7) + DEBUG_TEMP_UID (XTREE (x, 0));
+ hash += ((unsigned) DEBUG_EXPR << 7)
+ + DEBUG_TEMP_UID (DEBUG_EXPR_TREE_DECL (x));
return hash ? hash : (unsigned int) DEBUG_EXPR;
case CONST_INT:
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index 5ba5e63..29d3ab9 100644
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -321,7 +321,8 @@ print_rtx (const_rtx in_rtx)
else if (i == 0 && GET_CODE (in_rtx) == DEBUG_EXPR)
{
#ifndef GENERATOR_FILE
- fprintf (outfile, " D#%i", DEBUG_TEMP_UID (XTREE (in_rtx, 0)));
+ fprintf (outfile, " D#%i",
+ DEBUG_TEMP_UID (DEBUG_EXPR_TREE_DECL (in_rtx)));
#endif
}
break;
diff --git a/gcc/rtl.h b/gcc/rtl.h
index a7be009b..d5dbd1e 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -930,6 +930,9 @@ extern const char * const reg_note_name[];
#define NOTE_DURING_CALL_P(RTX) \
(RTL_FLAG_CHECK1("NOTE_VAR_LOCATION_DURING_CALL_P", (RTX), NOTE)->call)
+/* DEBUG_EXPR_DECL corresponding to a DEBUG_EXPR RTX. */
+#define DEBUG_EXPR_TREE_DECL(RTX) XCTREE (RTX, 0, DEBUG_EXPR)
+
/* Possible initialization status of a variable. When requested
by the user, this information is tracked and recorded in the DWARF
debug information, along with the variable's location. */
diff --git a/gcc/sched-vis.c b/gcc/sched-vis.c
index d95235e..906e9c3 100644
--- a/gcc/sched-vis.c
+++ b/gcc/sched-vis.c
@@ -522,7 +522,7 @@ print_value (char *buf, const_rtx x, int verbose)
cur = safe_concat (buf, cur, "]");
break;
case DEBUG_EXPR:
- sprintf (t, "D#%i", DEBUG_TEMP_UID (XTREE (x, 0)));
+ sprintf (t, "D#%i", DEBUG_TEMP_UID (DEBUG_EXPR_TREE_DECL (x)));
cur = safe_concat (buf, cur, t);
break;
default:
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 840128c..acc4d13 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -6304,7 +6304,7 @@ vt_expand_loc_callback (rtx x, bitmap regs, int max_depth, void *data)
return result;
case DEBUG_EXPR:
- dv = dv_from_decl (XTREE (x, 0));
+ dv = dv_from_decl (DEBUG_EXPR_TREE_DECL (x));
xret = NULL;
break;