aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2cfi.c
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2012-01-10 08:28:55 +0000
committerTom de Vries <vries@gcc.gnu.org>2012-01-10 08:28:55 +0000
commit5d1f1cd578d019bb67e3d4c8856988c40a2c6769 (patch)
tree02fe02afd3dcc280112dc74899ab42e5a2c1c1ed /gcc/dwarf2cfi.c
parentb440f32451e63beab306ec5cffba4c7ca3e85f97 (diff)
downloadgcc-5d1f1cd578d019bb67e3d4c8856988c40a2c6769.zip
gcc-5d1f1cd578d019bb67e3d4c8856988c40a2c6769.tar.gz
gcc-5d1f1cd578d019bb67e3d4c8856988c40a2c6769.tar.bz2
re PR rtl-optimization/51271 (ICE in in maybe_record_trace_start, at dwarf2cfi.c:2244)
2012-01-10 Tom de Vries <tom@codesourcery.com> PR rtl-optimization/51271 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when handling annulled branch. From-SVN: r183052
Diffstat (limited to 'gcc/dwarf2cfi.c')
-rw-r--r--gcc/dwarf2cfi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index b2721e8..2e74955 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -2439,10 +2439,12 @@ scan_trace (dw_trace_info *trace)
if (INSN_FROM_TARGET_P (elt))
{
HOST_WIDE_INT restore_args_size;
+ cfi_vec save_row_reg_save;
add_cfi_insn = NULL;
restore_args_size = cur_trace->end_true_args_size;
cur_cfa = &cur_row->cfa;
+ save_row_reg_save = VEC_copy (dw_cfi_ref, gc, cur_row->reg_save);
scan_insn_after (elt);
@@ -2453,6 +2455,7 @@ scan_trace (dw_trace_info *trace)
cur_trace->end_true_args_size = restore_args_size;
cur_row->cfa = this_cfa;
+ cur_row->reg_save = save_row_reg_save;
cur_cfa = &this_cfa;
continue;
}