re PR bootstrap/50010 (bootstrap comparison failure without CFI directives)
PR bootstrap/50010 * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between NOTE_INSN_CFI notes, with the exception of NOTE_INSN_SWITCH_TEXT_SECTIONS. From-SVN: r178795
This commit is contained in:
parent
3bd0817d1c
commit
b84dad8e0a
@ -1,3 +1,10 @@
|
||||
2011-09-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR bootstrap/50010
|
||||
* dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
|
||||
NOTE_INSN_CFI notes, with the exception of
|
||||
NOTE_INSN_SWITCH_TEXT_SECTIONS.
|
||||
|
||||
2011-09-12 Bernd Schmidt <bernds@codesourcery.com>
|
||||
Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
|
@ -2153,11 +2153,18 @@ add_cfis_to_fde (void)
|
||||
if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_CFI)
|
||||
{
|
||||
bool required = cfi_label_required_p (NOTE_CFI (insn));
|
||||
while (next && NOTE_P (next) && NOTE_KIND (next) == NOTE_INSN_CFI)
|
||||
{
|
||||
required |= cfi_label_required_p (NOTE_CFI (next));
|
||||
while (next)
|
||||
if (NOTE_P (next) && NOTE_KIND (next) == NOTE_INSN_CFI)
|
||||
{
|
||||
required |= cfi_label_required_p (NOTE_CFI (next));
|
||||
next = NEXT_INSN (next);
|
||||
}
|
||||
else if (active_insn_p (next)
|
||||
|| (NOTE_P (next) && (NOTE_KIND (next)
|
||||
== NOTE_INSN_SWITCH_TEXT_SECTIONS)))
|
||||
break;
|
||||
else
|
||||
next = NEXT_INSN (next);
|
||||
}
|
||||
if (required)
|
||||
{
|
||||
int num = dwarf2out_cfi_label_num;
|
||||
@ -2178,7 +2185,9 @@ add_cfis_to_fde (void)
|
||||
|
||||
do
|
||||
{
|
||||
VEC_safe_push (dw_cfi_ref, gc, fde->dw_fde_cfi, NOTE_CFI (insn));
|
||||
if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_CFI)
|
||||
VEC_safe_push (dw_cfi_ref, gc, fde->dw_fde_cfi,
|
||||
NOTE_CFI (insn));
|
||||
insn = NEXT_INSN (insn);
|
||||
}
|
||||
while (insn != next);
|
||||
|
Loading…
Reference in New Issue
Block a user