Module: wine Branch: master Commit: 500df92108ce726c177f62d8c18b4de9747b22a3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=500df92108ce726c177f62d8c1...
Author: Ken Thomases ken@codeweavers.com Date: Wed Jun 24 17:17:48 2015 -0500
dbghelp: Add partial support for version 3 of DWARF CIEs which are generated by Clang/LLVM.
---
dlls/dbghelp/dwarf.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index fa9e559..03eb43b 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -2629,7 +2629,7 @@ static BOOL parse_cie_details(dwarf2_traverse_context_t* ctx, struct frame_info*
/* parse the CIE first */ version = dwarf2_parse_byte(ctx); - if (version != 1) + if (version != 1 && version != 3) { FIXME("unknown CIE version %u at %p\n", version, ctx->data - 1); return FALSE; @@ -2639,7 +2639,10 @@ static BOOL parse_cie_details(dwarf2_traverse_context_t* ctx, struct frame_info*
info->code_align = dwarf2_leb128_as_unsigned(ctx); info->data_align = dwarf2_leb128_as_signed(ctx); - info->retaddr_reg = dwarf2_parse_byte(ctx); + if (version == 1) + info->retaddr_reg = dwarf2_parse_byte(ctx); + else + info->retaddr_reg = dwarf2_leb128_as_unsigned(ctx); info->state.cfa_rule = RULE_CFA_OFFSET;
end = NULL;