aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2014-08-27 20:38:06 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2014-08-27 20:38:06 +0000
commit0f4783c7f7c01596686da28e6fe86e0b69a43f3e (patch)
tree8d4ec8a41c63185441424d525a970a78807fbd37
parent2382940b419263c416f86cbf50cfcf5f18c22bdb (diff)
downloadgcc-0f4783c7f7c01596686da28e6fe86e0b69a43f3e.zip
gcc-0f4783c7f7c01596686da28e6fe86e0b69a43f3e.tar.gz
gcc-0f4783c7f7c01596686da28e6fe86e0b69a43f3e.tar.bz2
rtl_data.x_stack_slot_list becomes an rtx_expr_list
gcc/ 2014-08-27 David Malcolm <dmalcolm@redhat.com> * function.h (struct rtl_data): Strengthen field "x_stack_slot_list" from rtx to rtx_expr_list *. * emit-rtl.c (unshare_all_rtl_1): Add a checked cast when assigning to stack_slot_list. From-SVN: r214604
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/emit-rtl.c3
-rw-r--r--gcc/function.h2
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 25939ac..9fbf522 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,14 @@
2014-08-27 David Malcolm <dmalcolm@redhat.com>
* function.h (struct rtl_data): Strengthen field
+ "x_stack_slot_list" from rtx to rtx_expr_list *.
+
+ * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
+ when assigning to stack_slot_list.
+
+2014-08-27 David Malcolm <dmalcolm@redhat.com>
+
+ * function.h (struct rtl_data): Strengthen field
x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
* rtl.h (remove_node_from_expr_list): Strengthen second param from
rtx * to rtx_expr_list **.
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index f5ec8b4..6cfaef6 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2555,7 +2555,8 @@ unshare_all_rtl_1 (rtx_insn *insn)
This special care is necessary when the stack slot MEM does not
actually appear in the insn chain. If it does appear, its address
is unshared from all else at that point. */
- stack_slot_list = copy_rtx_if_shared (stack_slot_list);
+ stack_slot_list = safe_as_a <rtx_expr_list *> (
+ copy_rtx_if_shared (stack_slot_list));
}
/* Go through all the RTL insn bodies and copy any invalid shared
diff --git a/gcc/function.h b/gcc/function.h
index a176e0a..1f8da7a 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -280,7 +280,7 @@ struct GTY(()) rtl_data {
/* List (chain of EXPR_LISTs) of all stack slots in this function.
Made for the sake of unshare_all_rtl. */
- rtx x_stack_slot_list;
+ rtx_expr_list *x_stack_slot_list;
/* List of empty areas in the stack frame. */
struct frame_space *frame_space_list;