gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to NULL_TREE before...
authorEric Botcazou <ebotcazou@adacore.com>
Sun, 22 Sep 2013 21:57:39 +0000 (21:57 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sun, 22 Sep 2013 21:57:39 +0000 (21:57 +0000)
* gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
NULL_TREE before pushing them onto the vector.  Likewise for labels.

From-SVN: r202819

gcc/ChangeLog
gcc/gimplify.c

index 57fb929ebb9cce58424d86267cdc5caa0bf51acf..211dfb70ac50c6fba5a718cc955d7a856026e4de 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
+       NULL_TREE before pushing them onto the vector.  Likewise for labels.
+
 2013-09-21  Eric Botcazou  <ebotcazou@adacore.com>
 
        * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
index 1589db44b422f829f5565b13e980f64636504b6b..86bda77692ffac5e6c9243de881ab5ac3109a7ba 100644 (file)
@@ -5419,11 +5419,21 @@ gimplify_asm_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
       vec_safe_push (inputs, link);
     }
 
-  for (link = ASM_CLOBBERS (expr); link; ++i, link = TREE_CHAIN (link))
-    vec_safe_push (clobbers, link);
+  link_next = NULL_TREE;
+  for (link = ASM_CLOBBERS (expr); link; ++i, link = link_next)
+    {
+      link_next = TREE_CHAIN (link);
+      TREE_CHAIN (link) = NULL_TREE;
+      vec_safe_push (clobbers, link);
+    }
 
-  for (link = ASM_LABELS (expr); link; ++i, link = TREE_CHAIN (link))
-    vec_safe_push (labels, link);
+  link_next = NULL_TREE;
+  for (link = ASM_LABELS (expr); link; ++i, link = link_next)
+    {
+      link_next = TREE_CHAIN (link);
+      TREE_CHAIN (link) = NULL_TREE;
+      vec_safe_push (labels, link);
+    }
 
   /* Do not add ASMs with errors to the gimple IL stream.  */
   if (ret != GS_ERROR)