From 49dd6d1556087ca3f62c1af1eb8072130bf2c9f2 Mon Sep 17 00:00:00 2001 From: Tamas Berghammer Date: Fri, 3 Jul 2015 09:30:14 +0000 Subject: [PATCH] Fix handling of DW_CFA_restore_state The CFA offset shouldn't be irestored to the saved value in case of a DW_CFA_restore_state opcode. Differential revision: http://reviews.llvm.org/D10843 llvm-svn: 241331 --- lldb/source/Symbol/DWARFCallFrameInfo.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lldb/source/Symbol/DWARFCallFrameInfo.cpp b/lldb/source/Symbol/DWARFCallFrameInfo.cpp index e153bec8ab306..d1fec97aad5d3 100644 --- a/lldb/source/Symbol/DWARFCallFrameInfo.cpp +++ b/lldb/source/Symbol/DWARFCallFrameInfo.cpp @@ -743,8 +743,10 @@ DWARFCallFrameInfo::FDEToUnwindPlan (dw_offset_t dwarf_offset, Address startaddr // useful for compilers that move epilogue code into the body of a // function.) { + lldb::addr_t offset = row->GetOffset (); row = stack.back (); stack.pop_back (); + row->SetOffset (offset); } break;