summaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-22 21:57:39 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-22 21:57:39 +0000
commit4251e916a8a442c624ba3f43b87b781f138dea28 (patch)
treefbbc9ef0803d049e20bb2941a4a18497a72da342 /gcc/gimplify.c
parentb473f47fc414a1e6014f6fed59098f22f85bee6b (diff)
downloadgcc-4251e916a8a442c624ba3f43b87b781f138dea28.tar.gz
* gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
NULL_TREE before pushing them onto the vector. Likewise for labels. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202819 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 1589db44b42..86bda77692f 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -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)