rtl_data.x_stack_slot_list becomes an rtx_expr_list
authorDavid Malcolm <dmalcolm@redhat.com>
Wed, 27 Aug 2014 20:38:06 +0000 (20:38 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Wed, 27 Aug 2014 20:38:06 +0000 (20:38 +0000)
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

gcc/ChangeLog
gcc/emit-rtl.c
gcc/function.h

index 25939ac35d9b74b607547355ca4d09026ed109cb..9fbf522c75ae7d73faedeb7750b1b86786065c40 100644 (file)
@@ -1,3 +1,11 @@
+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
index f5ec8b4493b5b7519f479812adc88abaee15989e..6cfaef6342a5de2137a0c94bd27456dc375572c9 100644 (file)
@@ -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
index a176e0ac66bab794b80a2cc33187758759f8a036..1f8da7a6a660156a6b8aa7c23139eb0b3893356d 100644 (file)
@@ -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;