diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-08 23:48:53 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-08 23:48:53 +0000 |
commit | 6d627b5fb50a3b9aab543d2000f1203006f3a3ae (patch) | |
tree | 377656380433669138a5edd1aa6731ac5c2467ef /gcc/dwarf2cfi.c | |
parent | 3e7a86598be38df0b46511c02061908e7fdea7e2 (diff) | |
download | gcc-6d627b5fb50a3b9aab543d2000f1203006f3a3ae.tar.gz |
dwarf2cfi: Insert notes correctly wrt tablejumps.
PR bootstrap/49680
* dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
any tablejump vector.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176065 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2cfi.c')
-rw-r--r-- | gcc/dwarf2cfi.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c index 44655bb51bc..8031d48682b 100644 --- a/gcc/dwarf2cfi.c +++ b/gcc/dwarf2cfi.c @@ -2180,8 +2180,16 @@ dwarf2out_frame_debug (rtx insn, bool after_p) bool handled_one = false; bool need_flush = false; - /* Remember where we are to insert notes. */ - cfi_insn = (after_p ? insn : PREV_INSN (insn)); + /* Remember where we are to insert notes. Do not separate tablejump + insns from their ADDR_DIFF_VEC. Putting the note after the VEC + should be ok. */ + if (after_p) + { + if (!tablejump_p (insn, NULL, &cfi_insn)) + cfi_insn = insn; + } + else + cfi_insn = PREV_INSN (insn); if (!NONJUMP_INSN_P (insn) || clobbers_queued_reg_save (insn)) dwarf2out_flush_queued_reg_saves (); |