diff options
author | Jakub Jelinek <jakub@redhat.com> | 2000-07-07 22:06:57 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2000-07-07 22:06:57 +0200 |
commit | ca81c149d418bc349ee6749fe1cfa7ec005c5a1f (patch) | |
tree | c2e4867c5960cbe07481426cf9f690ecabfa41d1 /gcc/integrate.c | |
parent | f5afd9e924c198f8a01a92bb40ff48be87525ab1 (diff) | |
download | gcc-ca81c149d418bc349ee6749fe1cfa7ec005c5a1f.zip gcc-ca81c149d418bc349ee6749fe1cfa7ec005c5a1f.tar.gz gcc-ca81c149d418bc349ee6749fe1cfa7ec005c5a1f.tar.bz2 |
integrate.c (copy_insn_list): Remove REG_LABEL notes.
* integrate.c (copy_insn_list): Remove REG_LABEL notes.
* gcc.dg/20000707-1.c: New test.
From-SVN: r34907
Diffstat (limited to 'gcc/integrate.c')
-rw-r--r-- | gcc/integrate.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index eba94c1..93ed6d4 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1581,13 +1581,21 @@ copy_insn_list (insns, map, static_chain_value) && map->insn_map[INSN_UID (insn)] && REG_NOTES (insn)) { - rtx tem = copy_rtx_and_substitute (REG_NOTES (insn), map, 0); + rtx next, note = copy_rtx_and_substitute (REG_NOTES (insn), map, 0); /* We must also do subst_constants, in case one of our parameters has const type and constant value. */ - subst_constants (&tem, NULL_RTX, map, 0); + subst_constants (¬e, NULL_RTX, map, 0); apply_change_group (); - REG_NOTES (map->insn_map[INSN_UID (insn)]) = tem; + REG_NOTES (map->insn_map[INSN_UID (insn)]) = note; + + /* Finally, delete any REG_LABEL notes from the chain. */ + for (; note; note = next) + { + next = XEXP (note, 1); + if (REG_NOTE_KIND (note) == REG_LABEL) + remove_note (map->insn_map[INSN_UID (insn)], note); + } } if (local_return_label) |