summaryrefslogtreecommitdiff
path: root/gcc/dwarf2cfi.c
diff options
context:
space:
mode:
authorvries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>2012-01-10 08:28:55 +0000
committervries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>2012-01-10 08:28:55 +0000
commite2ab608c64b6624f025e3b1b53ea178bcd498cf0 (patch)
tree02fe02afd3dcc280112dc74899ab42e5a2c1c1ed /gcc/dwarf2cfi.c
parent47ddcd6beb05e048889c255d795abcbf4bce3b45 (diff)
downloadgcc-e2ab608c64b6624f025e3b1b53ea178bcd498cf0.tar.gz
2012-01-10 Tom de Vries <tom@codesourcery.com>
* dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when handling annulled branch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183052 138bc75d-0d04-0410-961f-82ee72b054a4
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 b2721e88ef4..2e749550fc5 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;
}